gpt4 book ai didi

python - 无法停止收到此错误 : ValueError: invalid literal for int() with base 10: ''

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:36 24 4
gpt4 key购买 nike

我已经在这个项目上工作了三个星期,而且我不是编码人员。老实说,我正在尽力而为。我对所有地方的程序员都产生了尊重。

起初,我尝试导入一个连续剧并立即对其内容进行处理,但没有成功。现在,我正在尝试将它写入一个文本文件,读取它,然后用它做一些事情。

无论哪种方式,出于某种原因我都无法将其转换为整数。这是我不断收到的错误:

ValueError:以 10 为底的 int() 的无效文字:''

我会为我尝试运行的每个程序发布一些代码。

导入序列号并直接做一些代码示例:

import serial
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
import time
import re

raw_buffer = ''
ydata = []
ydata_changed = False
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=None)

style.use('fivethirtyeight')

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
while True:


waiting = ser.inWaiting()
if waiting > 0:


raw_buffer = raw_buffer + \
ser.read(waiting).replace('\x00', '').replace('\n', '')
re.sub("[^[0-9]", "", raw_buffer)


raw = [int(x) for x in raw_buffer.split(' ,')]

到一个文本文件并“返回”

import serial
import time
ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
f = open('serial.txt', 'r+')
line = ser.readline().decode('utf-8')
f.write(line)
data = f.read()
try:
int(data)
except ValueError:
pass
time.sleep(1)
print int(data)
f.close()

每次都是同样的错误。这是数据示例:

177,177,178,178,178,178,178,179,178,178

提前感谢您给我的任何建议。

最佳答案

问题是 raw_buffer.split(' ,')"," 上拆分,而不是 ",""",因此 split 不适用于您的数据并返回 ["177,177,178,178,178,178,178,179,178,178"] 这不是作为字符串的整数列表。

raw_buffer.split(',') 有效,即使逗号前后有空格,因为转换为 int 可以很好地处理。

另一个问题是,如果您的行以逗号结尾,那么它会生成一个我们必须过滤掉的额外空白字符串,如下所示:

raw = [int(x) for x in raw_buffer.split(',') if x]

如果您事先不知道分隔符,请考虑使用正则表达式拆分:

raw = [int(x) for x in re.split(r"[\s,]+",raw_buffer) if x]

关于python - 无法停止收到此错误 : ValueError: invalid literal for int() with base 10: '' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42370447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com