我有几个CSV文件,如下所示:
Input
Name Code
blackberry 1
wineberry 2
rasberry 1
blueberry 1
mulberry 2
Run Code Online (Sandbox Code Playgroud)
我想为所有CSV文件添加一个新列,以便它看起来像这样:
Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
Run Code Online (Sandbox Code Playgroud)
我到目前为止的脚本是这样的:
import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
Run Code Online (Sandbox Code Playgroud)
(Python 3.2)
但是在输出中,脚本会跳过每一行,而新列中只有Berry:
Output
Name Code Berry
blackberry 1 Berry
wineberry 2 Berry
rasberry 1 Berry
blueberry 1 Berry
mulberry 2 Berry
Run Code Online (Sandbox Code Playgroud) 在将数字拆分成Python 3.2中的前三位数和后两位数之后,有什么方法可以显示前导零?我的脚本返回没有前导零的数字......
我有一个看起来像这样的csv文件:
Name,Code
blackberry,20001
wineberry,02002
rasberry,30000
blueberry,03010
Run Code Online (Sandbox Code Playgroud)
我想要的输出:
Name,Code,Code1,Code2
blackberry,20001,200,01
wineberry,02002,020,02
rasberry,30000,300,00
blueberry,03010,030,10
Run Code Online (Sandbox Code Playgroud)
我的剧本:
import csv
all = []
with open('aaa.csv','r') as csvinput:
with open('bbb.csv', 'w') as csvoutput:
reader = csv.reader(csvinput,delimiter=',')
writer = csv.writer(csvoutput,delimiter=",", lineterminator='\n')
row = next(reader)
row.append('Code1')
row.append('Code2')
all.append(row)
for row in reader:
row.append(row[1][0:2])
row.append(row[1][-2:])
all.append(row)
writer.writerows(all)
print(all)
Run Code Online (Sandbox Code Playgroud)
上面的脚本返回:
Name,Code,Code1,Code2
blackberry,20001,200,1
wineberry,02002,20,2
rasberry,30000,300,0
blueberry,03010,30,10
Run Code Online (Sandbox Code Playgroud)