gpt4 book ai didi

Python CSV Writer 修剪前导零

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:45 25 4
gpt4 key购买 nike

我正在 python 中读取 csv 文件,更改一些值,然后将其写回。我使用以下方式读取文件:

bomReader = csv.reader( open( args.filename, 'rb' ), delimiter=',' )
for row in bomReader:
#do stuff

其中一个字段包含诸如 0406 之类的值,其中前导零很重要。读取 csv 文件后,如果我使用 print row[2] 打印此字段,它将正确显示并带有前导 0。

但是,当我将其写回新的 csv 文件时,输出没有前导零。我认为这是因为它被认为是一个 int 并且前导零被修剪。由于我无法在 csv.writer writeRow() 函数中使用格式说明符,防止这种行为的正确方法是什么?

代码:

bomReader = csv.reader( open( args.filename, 'rb' ), delimiter=',' )
bomWriter = csv.writer(open(outfile, 'wb'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)

for row in bomReader:
try:
qty = int(row[3])
if (qty > 0):
cs = row[4].split(';')
for each in cs:
bomWriter.writerow([row[0],row[1], row[2],'1',each.strip(),row[5],row[6],row[7],row[8],row[9]])
elif (qty == 0):
print "Deleted line"
else:
bomWriter.writerow(row)
except ValueError:
bomWriter.writerow(row)

输入 csv 文件中的示例行:

1007,C,0406,2,C456;C219,ANY,,,,,,

输出 csv 文件中的行:

1007,C,406,1,C456,ANY,,,,
1007,C,406,1,C219,ANY,,,,

最佳答案

您提供的代码在 Python 2.6.7Python 2.7.2csv.__version=='1.0'< 下可以正常工作。输出:

1007,C,0406,1,C456,ANY,,,,
1007,C,0406,1,C219,ANY,,,,

关于Python CSV Writer 修剪前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com