[英]How to display leading zeros after splitting numbers in Python
在将数字拆分成Python 3.2中的前三位数和后两位数之后,有什么方法可以显示前导零? 我的脚本返回没有前导零的数字......
我有一个看起来像这样的csv文件:
Name,Code
blackberry,20001
wineberry,02002
rasberry,30000
blueberry,03010
我想要的输出:
Name,Code,Code1,Code2
blackberry,20001,200,01
wineberry,02002,020,02
rasberry,30000,300,00
blueberry,03010,030,10
我的剧本:
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)
上面的脚本返回:
Name,Code,Code1,Code2
blackberry,20001,200,1
wineberry,02002,20,2
rasberry,30000,300,0
blueberry,03010,30,10
csv.writer
不会将字符串转换为数字类型,因此不会导致您看到的错误。
我希望你在Excel中查看你的csv文件,它可以将字符串转换为数字。 在文本编辑器中查看输出,您应该看到前导零实际存在。
另外,正如其他人指出的那样,你的第一个切片应该是row[1][0:3]
。
我无法看到您的代码如何生成此输出。 但纠正拼写错误,将for
循环更改for
for row in reader:
row = [r.strip() for r in row]
row.append(row[1][0:3])
row.append(row[1][3:])
all.append(row)
应该工作,无论错误的空格可能会在一行结束时导致问题:
localhost-2:coding $ more bbb.csv
Name,Code,Code1,Code2
blackberry,20001,200,01
wineberry,02002,020,02
raspberry,30000,300,00
blueberry,03010,030,10
PS:使用all
作为变量名是个坏主意。 这是一个非常方便的内置的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.