Python不计算csv文件中的头
我有python代码来编辑csv文件中的列。它从第5行的整数中删除零。然后,如果整数是3或更小,它会加上一个零,所以它总共有4个或更多的整数 我遇到的问题是它不喜欢不是整数的标题行。是否有人知道我如何保持标题,但调整代码,使其不看csv文件的第一行 代码如下:Python不计算csv文件中的头,python,csv,Python,Csv,我有python代码来编辑csv文件中的列。它从第5行的整数中删除零。然后,如果整数是3或更小,它会加上一个零,所以它总共有4个或更多的整数 我遇到的问题是它不喜欢不是整数的标题行。是否有人知道我如何保持标题,但调整代码,使其不看csv文件的第一行 代码如下: import csv import re import os import sys with open('', 'r') as infile, open('', 'w') as outfile: reader = csv.reade
import csv
import re
import os
import sys
with open('', 'r') as infile, open('', 'w') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
#firstline = True
#for row in outfile:
# if outfile:
# firstline = False
for row in reader:
# strip all 0's from the front
stripped_value = re.sub(r'^0+', '', row[5])
# pad zeros on the left to smaller numbers to make them 4 digits
row[5] = '%04d'%int(stripped_value)
writer.writerow(row)
在循环之前添加以下内容:
# Python 2.x
writer.writerow(reader.next())
# Python 3.x
writer.writerow(next(reader))
它将获取第一行并返回它。然后将其写入输出
但是,在我看来,应该使循环中的代码抵抗该列(如中)上的非数字。您可以使用异常处理程序。另外,稍后您将有一个处理非数字行的好方法
for row in reader:
# strip all 0's from the front
stripped_value = re.sub(r'^0+', '', row[5])
# pad zeros on the left to smaller numbers to make them 4 digits
try:
row[5] = '%04d'%int(stripped_value)
except ValueError:
pass # Or do something, to avoid passing it silently
writer.writerow(row)
具有正确缩进的代码段:
import csv
import re
import os
import sys
with open('', 'r') as infile, open('', 'w') as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile)
for row in reader:
# strip all 0's from the front
stripped_value = re.sub(r'^0+', '', row[5])
# pad zeros on the left to smaller numbers to make them 4 digits
try:
row[5] = '%04d'%int(stripped_value)
except ValueError:
pass # Or do something, to avoid passing it silently
writer.writerow(row)
ValueError:对关闭的文件执行I/O操作,不确定为什么会出现此错误。不确定为什么会出现此错误。ValueError:对关闭的fileRight执行I/O操作。确保所有东西都正确缩进。我会马上更新我的答案,@NickInstead通过将代码片段复制到答案中来修复代码片段,编辑问题本身。@DenilsonSáoh真的吗?我认为最好保留原始问题,并将我的解决方案集成到整个代码片段中。如果存在缩进问题,只编辑问题是否更好?当我将其写入.txt文件时,它起作用,但当我将其写入csv文件时,它不起作用。这其实很奇怪。我不知道它为什么现在这样做。可能是重复的