复制CSV文件中的列

时间:2017-08-11 18:25:53

标签: python csv

我正在尝试从输入文件中复制列并将其放到输出文件中。例如,在我的输入文件中,我想将row [2]复制到输出文件的row [15]上。在下面的代码中发生的是复制输入的行[2]并将其粘贴到输出的行[0]上,这从代码中是有意义的。如何让它适用于行[18]?

for path in glob.glob("out.csv"):
  if path == "out1.csv": continue
  with open(path) as fh:
    reader = csv.reader(fh)
    for row in reader:
        if row[8] == 'READ' and row[10] == '1110':
            writer = csv.writer(out1, dug1)
            writer.writerow([row[2]])
            writer.writerow(row

1 个答案:

答案 0 :(得分:0)

我相信您要么根据从CSV中读取的内容来寻找固定行输出或动态行输出。您从阅读器中读取所有行。变化

reader = csv.reader(fh)

rows = list(csv.reader(fh))
  

如果你有巨大的CSV文件,那么不建议使用上面的文件,因为它会将整个文件加载到内存中,你不希望这种情况发生。

现在你有一个rows变量,其中包含csv中的所有行。如果您想要进入特定行,请使用rows[row-1][col-1]

如果要在CSV中写入特定行,则可以使用rows[row-1]然后写入csv。

writer.writerow(rows[row-1])

如果要混合行中的某些列,则需要使用数组切片

writer.writerow(rows[row-1][:3] + ["my","data"] + rows[row-1][5:])

上面你应该有足够的例子来实现你想要的东西