[英]Parsing csv file in python
我有以下格式的csv文件:
x1 x2 x3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
有人可以讓我知道如何僅訪問此文件的第一列嗎?
要按名稱訪問列(我不確定您的delimiter
是否實際上是' '
,但是您可以將其更改為','
):
import csv
with open('data.csv', 'rb') as f:
r = csv.DictReader(f, delimiter=' ', skipinitialspace=True)
print [row['x1'] for row in r]
['1', '2', '3', '4', '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']
with
打開文件,並帶有保證,您一旦確定將關閉文件。 在我們的例子中, print 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]
結論: csv
模塊很棒,但是Python非常強大,即使在很多情況下,即使沒有它,您也可以做到。 如果文件內容有些不規則並且csv
令人窒息,那么最好知道如何“手動”執行文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.