我正在尝试从输入文件中复制列并将其放到输出文件中。例如,在我的输入文件中,我想将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
答案 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:])
上面你应该有足够的例子来实现你想要的东西