用python解析csv文件
我有以下格式的csv文件:用python解析csv文件,python,csv,Python,Csv,我有以下格式的csv文件: x1 x2 x3 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 有人能告诉我如何访问此文件中的第一列吗?按名称访问列(我不确定您的分隔符是否实际是',但您可以将其更改为,'): 要按名称访问列(我不确定您的分隔符是否实际为',但您可以将其更改为,'): 无需使用csv模块即可阅读: with open('data
x1 x2 x3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
有人能告诉我如何访问此文件中的第一列吗?按名称访问列(我不确定您的分隔符是否实际是'
,但您可以将其更改为,'
):
要按名称访问列(我不确定您的分隔符是否实际为'
,但您可以将其更改为,'
):
无需使用csv
模块即可阅读:
with open('data.csv') as fobj:
next(fobj)
x1 = [line.split(None, 1)[0] for line in fobj]
print x1
结果:
['1', '2', '3', '4', '5']
[1, 2, 3, 4, 5]
使用
的打开文件,并保证文件将关闭
只要你一离开。在我们的例子中,在打印x1
。
在Python中,打开的文件(此处为fobj
)是一个迭代器。我们使用next
使用第一行,并使用列表提取每行中的第一个条目。
.split(None,1)
在所有类型的空白处拆分,如空格、制表符或换行符和
将拆分限制为第一列。对于大型文件,这可能会更有效,但在这里肯定不重要。普通的.split()
也可以。[0]
获取列表的第一个元素
将数字转换为整数时的变化:
with open('data.csv') as fobj:
next(fobj)
x1 = [int(line.split(None, 1)[0]) for line in fobj]
print x1
结果:
['1', '2', '3', '4', '5']
[1, 2, 3, 4, 5]
结论:csv
模块很棒,但是Python功能强大,即使在很多情况下不使用它也可以做到。如果文件内容有点不规则,并且csv
卡死了,最好知道如何“手工”读取。无需使用csv
模块即可读取:
with open('data.csv') as fobj:
next(fobj)
x1 = [line.split(None, 1)[0] for line in fobj]
print x1
结果:
['1', '2', '3', '4', '5']
[1, 2, 3, 4, 5]
使用
的打开文件,并保证文件将关闭
只要你一离开。在我们的例子中,在打印x1
。
在Python中,打开的文件(此处为fobj
)是一个迭代器。我们使用next
使用第一行,并使用列表提取每行中的第一个条目。
.split(None,1)
在所有类型的空白处拆分,如空格、制表符或换行符和
将拆分限制为第一列。对于大型文件,这可能会更有效,但在这里肯定不重要。普通的.split()
也可以。[0]
获取列表的第一个元素
将数字转换为整数时的变化:
with open('data.csv') as fobj:
next(fobj)
x1 = [int(line.split(None, 1)[0]) for line in fobj]
print x1
结果:
['1', '2', '3', '4', '5']
[1, 2, 3, 4, 5]
结论:csv
模块很棒,但是Python功能强大,即使在很多情况下不使用它也可以做到。如果文件内容有点不规则,csv
阻塞了它,知道如何“手工”操作总是好的。你说那是逗号分隔的文件,但我在数据中没有看到任何注释。你说那是逗号分隔的文件,但是我在数据中没有看到任何注释。@user2386695:这意味着您没有指定正确的分隔符。哪个字符将一个值与下一个值分开?可能是制表符吗?@user2386695:这意味着您没有指定正确的分隔符。哪个字符将一个值与下一个值分开?也许是账单吧?