我有这段代码,它允许我计算Python3.6中脚本的csv中缺少的数字行数。但是,程序中存在以下错误:
错误:
Traceback (most recent call last):
File "C:\Users\GapReport.py", line 14, in <module>
EndDoc_Padded, EndDoc_Padded = (int(s.strip()[2:]) for s in line)
File "C:\Users\GapReport.py", line 14, in <genexpr>
EndDoc_Padded, EndDoc_Padded = (int(s.strip()[2:]) for s in line)
ValueError: invalid literal for int() with base 10: 'AC-SEC 000000001'代码:
import csv
def out(*args):
print('{},{}'.format(*(str(i).rjust(4, "0") for i in args)))
prev = 0
data = csv.reader(open('Padded Numbers_export.csv'))
print(*next(data), sep=', ') # header
for line in data:
EndDoc_Padded, EndDoc_Padded = (int(s.strip()[2:]) for s in line)
if start != prev+1:
out(prev+1, start-1)
prev = end
out(start, end)我被如何修复这些issues.Also难住了,我想csv里面有很多行,所以如果有一个部分限制它只有几个数字,请随时更新我。
CSV代码片段(如果我之前没说清楚,很抱歉!):

发布于 2017-09-15 04:36:46
CSV文件中的值不是数字。
例如,FMAC-SEC 000000001不是数字。因此,当您运行int(s.strip()[2:])时,它无法将其转换为int。
关于代码的更多注释:
EndDoc_Padded, EndDoc_Padded = (...)的实用程序是什么?当前,您正在为具有相同名称的两个变量赋值。你想从每一列中得到两个不同的值吗?,,
line一分为二。您的文件内容是否用逗号分隔?如果是,则执行for s in line.split(','),否则在split().https://stackoverflow.com/questions/46227075
复制相似问题