【问题标题】:How to open each column of a text file as separate list?如何将文本文件的每一列作为单独的列表打开?
【发布时间】:2013-11-20 10:59:05
【问题描述】:

如何将文本文件的每一列作为单独的列表打开?

import csv    
infile = open ('data.txt', 'r')
reader = csv.reader(infile, delimiter=' ')
col1 = [line[0] for line in reader]
print (col1)
col2 = [line[1] for line in reader]
print (col2)
But column2 is empty. Any idea???

data.txt 如下所示:

a d 1
b e 2
c f 3

【问题讨论】:

    标签: python list csv


    【解决方案1】:

    在您的代码中,col2 是空的,因为在第一次迭代之后(col1 的列表理解),迭代器已经用尽了。

    你可以zip*:

    import csv
    with open('abc.csv') as f:
        reader = csv.reader(f, delimiter=' ')
        c1, c2, c3 = zip(*reader)
        print c1
        print c2
        print c3
    

    输出:

    ('a', 'b', 'c')
    ('d', 'e', 'f')
    ('1', '2', '3')
    

    【讨论】:

    • 回答这部分问题可能也很有启发性:“但是 column2 是空的。有什么想法吗?”
    • @AndréCaron 添加了该部分。
    • 如果你描述一下这个意思会更好:zip(*reader)@hcwhsa
    • @nils 查看zip 的文档,那里有解释。
    【解决方案2】:
    with open ('data.txt','r') as infile:
        col1= [i.strip().split(' ')[0] for i in infile]
    with open ('data.txt','r') as infile:    
        col2= [i.strip().split(' ')[1] for i in infile]
        print (col1)
        print (col2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多