我在文件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: ''
答案 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)
循环内打印的所有内容都会写回文件。