【问题标题】:Error: ValueError: invalid literal for int() with base 10: ''错误:ValueError:int() 的无效文字,基数为 10:''
【发布时间】:2014-04-23 06:41:41
【问题描述】:

我在 build_ver.txt 文件中有值 1028,运行以下脚本时出现以下错误,脚本试图将计数增加 1 并将值写回文件..请建议如何克服这个问题?

with open(r'\\Network\Build_ver\build_ver.txt','w+') as f:
    value = int(f.read())
    f.seek(0)
    f.write(str(value + 1))

错误:-

Traceback (most recent call last):
  File "build_ver.py", line 2, in <module>
    value = int(f.read())
ValueError: invalid literal for int() with base 10: ''

【问题讨论】:

  • 我相信您应该在转换为int之前将字符串剥离为f.read().strip()

标签: python


【解决方案1】:

这是在w+ 模式下打开文件的作用:

w+
开放阅读和写作。如果有,则创建该文件 不存在,否则会被截断。流位于文件的开头。

强调我的。你的文件是空的,read() 会给你一个空字符串。

也许您想以r+ 模式打开?

【讨论】:

    【解决方案2】:

    您也可以使用fileinput“就地”修改文件:

    import fileinput
    
    for line in fileinput.input('\\Network\Build_ver\build_ver.txt', inplace=True):
        print str(int(line) + 1)
    

    循环内打印的所有内容都会写回文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 2021-08-06
      • 2018-09-05
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多