我正在尝试编写一个python脚本,将一个csv文件中的数据写入另一个结构不同的csv文件中
我目前只能复制源文件结构中的数据。
!/usr/bin/env python3
#imports csv module
import csv
#opens file and reads
out=open("forecast_test.csv","rb")
data=csv.reader(out)
with open('new_data.csv', 'w') as new_data:
csv_writer = csv.writer(new_data)
for line in data:
csv_writer.writerow(line)
print (line)
源文件的结构如下
id,
123,
435,
765,
我希望我的脚本将其写入结构如下的csv文件
id, id2, id3
123, 435, 765
答案 0 :(得分:1)
我希望第一列不仅是id0
是id
,而且这样做可以节省循环中if语句的需要。
import csv
datafile=open('forecast_test.csv', 'r')
reader = csv.reader(datafile)
ls=[]
for r in reader:
ls.append(r[0])
coltit=ls[0]
ls.pop(0)
lout=[]
lout1=[]
for x in ls:
lout.append(str(coltit)+str(ls.index(x)))
lout1.append(x)
with open('new_data.csv', 'w') as new_data:
csv_writer = csv.writer(new_data)
csv_writer.writerows([lout])
csv_writer.writerows([lout1])
new_data.csv
id0,id1,id2
123,435,765
答案 1 :(得分:0)
我推断出您想将每个ID从写入列中的新行转换为同一行中的新列。
为此,您需要一次将整个数组传递给writerow():
更改:
for line in data:
csv_writer.writerow(line)
收件人:
csv_writer.writerow(data)
data=csv.reader(out)
到
data=list(csv.reader(out))