Python CSV Writer trimming leading zeros
我正在用python读取一个csv文件,更改一些值,然后将其写回。我阅读文件时使用:
1 2 3 | bomReader = csv.reader( open( args.filename, 'rb' ), delimiter=',' ) for row in bomReader: #do stuff |
其中一个字段包含值,如
然而,当我把它写回新的csv文件时,输出没有前导零。我想这是因为它被认为是一个int,前导零被修剪了。由于我不能在csv.writer writerow()函数中使用格式说明符,如何正确地防止这种行为?
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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文件中的示例行:
1 | 1007,C,0406,2,C456;C219,ANY,,,,,, |
输出csv文件中的行:
1 2 | 1007,C,406,1,C456,ANY,,,, 1007,C,406,1,C219,ANY,,,, |
。
您提供的代码在
1 2 | 1007,C,0406,1,C456,ANY,,,, 1007,C,0406,1,C219,ANY,,,, |