簡體   English   中英

在python中解析csv文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM