我有这段代码,它允许我计算在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)
我不知道怎么修这些问题。还有,我认为csv中有很多行,所以如果有一个部分限制它为几个数字,请随时更新我就这样。你知道吗
CSV代码段(如果我之前不清楚的话,很抱歉!)地址:
CSV文件中的值不是数字。你知道吗
例如,
FMAC-SEC 000000001
不是一个数字。因此,运行int(s.strip()[2:])
时,它无法将其转换为int
。你知道吗关于代码的更多注释:
做
EndDoc_Padded, EndDoc_Padded = (...)
的效用是什么?当前,您正在为两个同名变量赋值。要么给其中一个起个名字,要么就在那里有一个变量。你想从每一列得到两个不同的值吗?在这种情况下,您需要首先将
line
分成两部分。文件的内容是否用逗号分隔?如果是,则执行for s in line.split(',')
,否则在split()
中使用适当的分隔符值。您在一个循环中运行它,因此每次这两个变量的值都会更新为最后一行的值。如果您试图获取2个包含所有值的列表,那么这将不起作用。
相关问题 更多 >
编程相关推荐