【问题标题】:Python : editing several files : loop on a list of filePython:编辑多个文件:在文件列表上循环
【发布时间】:2013-07-03 14:01:06
【问题描述】:

大家好,

我有数千个采用这种格式的三列 .csv Ascii 文件:

"1;6774.64;210.00"

我想把它们转换成一个我可以像这样编辑成 python 的列表:

[6774.64, 210.00]

我已经开始尝试做一些导入,比如:

p = open('ruby-Ne008.csv')
linelist = [line for line in p.readlines()]

然后如何删除 " 字符,并将 ; 字符替换为列分隔符。

谢谢!

【问题讨论】:

    标签: python csv io


    【解决方案1】:

    类似这样的:

    >>> import csv
    >>> from itertools import chain
    >>> with open('ruby-Ne008.csv') as f:
        reader = csv.reader(f, delimiter = ';' )
        lis = list(chain.from_iterable(map(float,row[1:]) for row in reader))
        print lis
    ...     
    [6774.64, 210.0]
    

    【讨论】:

    • 为了代码的清晰性和可读性,我建议现在只使用row,但值的真正含义,例如。 g.:list(chain.from_iterable([ float(height), float(width) ] for count, height, width in reader))(当然我们不知道名字,所以这取决于提问者。)
    【解决方案2】:

    linelist = [[float(x) for x in line.split(';')[1:]] for line in p.readlines()]

    这样就够了吗?

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 2014-08-21
      • 1970-01-01
      相关资源
      最近更新 更多