提取行并保存到多个csv文件

时间:2011-09-04 17:17:30

标签: python csv split

我正在尝试使用Python解决以下问题:我有一个表(csv),我想从中连续提取第1 + 2行,然后第1 + 3行,然后第1 + 4行,等等。应该再次保存为csv文件,并根据要提取的第2行中的第一个字符串命名(2,3,4,5,...)。现在我的问题 - python是正确的工具,有没有可用的示例代码?

非常感谢您提供任何帮助&提示!

克劳德S。

+澄清:

感谢您的反馈 - 实际上我正在尝试使用csv模块打开并使用以下代码读取表:

import csv
import sys

f = open(sys.argv[1], 'rt')
try:
    reader = csv.reader(f)
    for row in reader:
        print row

现在我不确定如何选择和编写所需的行...对不起初学者的问题。 克劳德S。

2 个答案:

答案 0 :(得分:1)

fname = argv[1]
with open(fname) as i:
    reader = csv.reader(i)

    first_row = next(reader)
    for cur_row in reader:
        out_name = cur_row[0]
        with open(out_name, 'wb') as o:
            writer = csv.writer(o)
            writer.writerow(first_row)
            writer.writerow(cur_row)

希望有所帮助

答案 1 :(得分:0)

我不相信你需要csv模块(除非第一列可以包含引号和逗号)。如果您的文件格式很简单,只需使用拆分。

fname = argv[1]
with open(fname) as f:
    header = f.readline()
    # parse the rest of the lines. 
    for line in f:
        out_name = line.split(',')[0]
        with open(out_name, 'wb') as o:
            o.write(header)
            o.write(line)