python - 获取值错误: invalid literal for int() with base 10: '' during conversion of string

标签 python

我有一个 TCP 服务器,我希望能够接收数字(整数),但在解决程序的某些输出时遇到一些困难。它输出它应该输出的内容,但此外它还输出一些带有 ValueError 的回溯。我该如何解决这个问题?

Traceback (most recent call last):   File "server.py", line 18, in
<module>
    data = int(conn.recv(BUFFER_SIZE).strip()); ValueError: invalid literal for int() with base 10: ''

我在这里所做的是将整数发送到服务器:

    data = int(conn.recv(BUFFER_SIZE).strip());

    foo = data + 1;

    if not data: break

    print "received data:", data
    print "\n foo:", foo

这似乎效果很好,但除了两个打印之外,我还得到了如上所述的回溯:-/

编辑:

感谢您指出这一点。由于数据(或接收)可能为空,我只是将逻辑移至 if 测试下,瞧...:D

        data = conn.recv(BUFFER_SIZE).strip();

        if not data: break

        command = int(data);
        foo = command + 1;

最佳答案

正如错误消息所示,int() 呕吐在空字符串上。因此请检查这一点并避免调用 int(),否则捕获并忽略 ValueError

策略一:

data = conn.recv(BUFFER_SIZE).strip()
if data:
    data = int(data)
    foo = data + 1
    if not data: break

策略二:

try:
    data = int(conn.recv(BUFFER_SIZE).strip());
except ValueError:
    continue

关于python - 获取值错误: invalid literal for int() with base 10: '' during conversion of string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817482/

相关文章:

python - 删除 Pandas Dataframe 中的重复日期并合并值 - Python

python - 使用 Python 从大型文本文件到稀疏矩阵

python - 在 Flask 中按文件分离 SQLAlchemy 模型

python - 神经网络在 tensorflow 中执行是什么意思

python - 似乎无法使用 Python 和 Beautiful Soup 将所有信息写入 CSV 文件

python - 将正则表达式转换为有限状态机

python - 为什么我不能从多处理队列中捕获 Queue.Empty 异常?

python - 我应该如何在 python matplotlib 中对粒子进行动画处理?

python - Django Tastypie : reverse url with "spaces". 怎么样?

python - 在 python、pandas 中保留