Python 基数为10的int的文本无效

Python 基数为10的int的文本无效,python,Python,我在运行代码行49时遇到此错误,总能量最后一个数字+=intdig ValueError:基数为10的int的无效文本:' def total_energy(data): last_digit=0 lines= data.split('\n') for line in lines: if len(line)>6: your_digits=line[-15:].split(',') for dig in your_digits:

我在运行代码行49时遇到此错误,总能量最后一个数字+=intdig ValueError:基数为10的int的无效文本:'

def total_energy(data):
    last_digit=0
    lines= data.split('\n')

for line in lines:
    if len(line)>6:
        your_digits=line[-15:].split(',')

    for dig in your_digits:
         last_digit+=int(dig)

print last_digit
我也尝试过浮动,但同样的错误。 这是代码正在处理的数据。 任何帮助都会很好

在原始数据中:

line89: 06:28,9.1,2.3,0,0,0,0,30,0,0,89,0
line90: 06:29,9.1,2.7,0,0,0,0,0,0,0,87,0
尝试用int解析第90行时遇到此错误。如您所见,第90行中的数据长度较短,这使得代码中的第[-15:]行返回意外结果

您必须编辑获取数字的方式

试试这个:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

f = open('data_printed.txt', 'r')
data = f.read()
f.close()

last_digit=0
lines= data.split('\n')
for line in lines:
    if len(line)>6:
        your_digits=line.split(',')[-7:]  # here to get last 7 elements you want
    for dig in your_digits:
        last_digit+=int(dig)

print last_digit

告诉我它是否有效。

您正在尝试将非int字符串转换为int。例如,如果您尝试执行int'a',您将得到以10为基数的int的无效文本错误。检查并打印您的_数字。提示:当您尝试将空字符串转换为int整数时会发生什么情况?您应该使用csv模块解析逗号分隔值的文件;请尝试:last_digit+=intdig//except:打印您的数字并发布打印内容我发现adam说它得到的是一个空字符串,我认为错误在于“your_digits=line[-15:][.split”部分。我也不熟悉csvmodule@user3491814你能告诉我这次发生了什么样的错误吗?同一行51,总能量最后一位+=intdig值错误:以10为基数的int无效文本:@user3491814您能给我51行的内容吗?从我的角度看还可以。等等,不!很抱歉,我正在执行我的旧代码:您的代码工作正常@用户3491814哈哈。所以别忘了接受它作为答案
import csv

answer = 0
with open('path/to/file') as infile:
    for line in csv.reader(infile, delimiter=','):
        nums = (int(i) for i in line[3:])
        answer += sum(nums)
print answer