首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3代码中的ValueError

Python3代码中的ValueError
EN

Stack Overflow用户
提问于 2017-09-15 03:42:14
回答 1查看 74关注 0票数 0

我有这段代码,它允许我计算Python3.6中脚本的csv中缺少的数字行数。但是,程序中存在以下错误:

错误:

代码语言:javascript
复制
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'

代码:

代码语言:javascript
复制
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代码片段(如果我之前没说清楚,很抱歉!):

EN

回答 1

Stack Overflow用户

发布于 2017-09-15 04:36:46

CSV文件中的值不是数字。

例如,FMAC-SEC 000000001不是数字。因此,当您运行int(s.strip()[2:])时,它无法将其转换为int

关于代码的更多注释:

  1. 执行EndDoc_Padded, EndDoc_Padded = (...)的实用程序是什么?当前,您正在为具有相同名称的两个变量赋值。你想从每一列中得到两个不同的值吗?,

  1. ?,你想从每列中得到两个不同的值吗?在这种情况下,您需要首先将line一分为二。您的文件内容是否用逗号分隔?如果是,则执行for s in line.split(','),否则在split().
  2. You中使用适当的分隔值在循环内运行,因此每次两个变量的值都会更新为最后一行的值。如果你想获取所有值的两个列表,那么这是行不通的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46227075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档