我有一个时髦的制表符分隔文件,我想减少时髦

时间:2011-11-22 23:54:35

标签: python csv

我有很多制表符分隔的数据,这些数据被组织成多行,并且应该全部分为两行。现在它看起来像这样:

    Some Key    Other key   Foo Key    Bar Key
     0           5           18         12

    More Key    Dor key     Gee Key    Francis Scott  Key
     19          14          8          0

    Wa Key      Whis key    Don Key    Luh Key
     0           2           8          16

我需要它看起来像这样:

    Some Key    Other key   Foo Key    Bar Key    More Key    Dor key     Gee Key    Francis Scott  Key    Wa Key      Whis key    Don Key    Luh Key
     0           5           18         12         19          14          8          0                    0           2           8          16

我有几百个csv文件,每个文件大约有20行,30列,所以我想尽可能地编写脚本。我正在使用Python CSV,但我无法弄清楚如何解释自己。

2 个答案:

答案 0 :(得分:3)

这应该这样做:

import csv
import sys

keys = []
values = []

reader = csv.reader(sys.stdin, delimiter="\t")
for row in reader:
    keys.extend(row)
    values.extend(next(reader))

    # skip empty line
    assert next(reader, []) == []

writer = csv.writer(sys.stdout, delimiter="\t")
writer.writerow(keys)
writer.writerow(values)

将其另存为thingie.py并使用python thingie.py < sample.csv运行(其中“sample.csv”是您的数据文件)

答案 1 :(得分:0)

您可以使用选项卡作为分隔符来ssplit文件的内容,将每个int“eger元素放在一个数组中,然后将每个字符串元素放入另一个元素中。然后,你将所有的一行上的字符串(键)由制表符分隔,一行包含由制表符分隔的所有整数。