错误:ValueError:int()的基数为10的文字无效:''

时间:2014-04-22 22:35:53

标签: python

我在文件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: ''

2 个答案:

答案 0 :(得分:2)

这是以w+模式打开文件的原因:

  

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

强调我的。您的文件为空,read()将为您提供一个空字符串。

也许你想以r+模式开启?

答案 1 :(得分:0)

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

import fileinput

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

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