Python不计算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

我有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.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文件时,它不起作用。这其实很奇怪。我不知道它为什么现在这样做。可能是重复的