我正在尝试从网络位置的文件“build_ver.txt”中读取值,将值递增1并将递增的新值写回“build_ver.txt”并运行到以下错误,任何人都可以提供关于如何实现这个目标的建议?
with open('\\network\files\build_ver.txt','w+') as f:
value = f
value = value+1
value_inc = open('\\network\files\build_ver.txt','w+')
value_inc.write(value)
错误: -
Traceback (most recent call last):
File "build_ver.py", line 1, in <module>
with open('\\network\files\build_ver.txt','w+') as f:
IOError: [Errno 22] invalid mode ('w+') or filename: '\\network\x0ciles\x08uild_ver.txt'
答案 0 :(得分:5)
反斜杠转义特殊字符,在您的情况下&#39; \ f&#39;:form-feed和&#39; \ b&#39;:bell。你必须用另一个反斜杠来逃避反斜杠或者使用r&#39;&#39; -Syntax。下一个问题:您没有读取文件,只能重命名该对象。如果您要读取该对象,您将拥有一个字符串而不是一个数字,如果您将该字符串转换为数字,则您无法编写它,因为它不是字符串。总而言之,你得到了这个:
with open(r'\\network\files\build_ver.txt','r+') as f:
value = int(f.read())
f.seek(0)
f.write(str(value + 1))
答案 1 :(得分:2)
在python中,反斜杠用作转义序列。如果我输入你的字符串会发生以下情况:
>>> '\\network\files\build_ver.txt'
'\\network\x0ciles\x08uild_ver.txt'
>>> print '\\network\files\build_ver.txt'
\network
ileuild_ver.txt
>>>
相反,请将您的代码更改为:
value_inc = open('\\network\\files\\build_ver.txt','w+')
value_inc.write(value)
如图所示:
>>> print '\\network\\files\\build_ver.txt'
\network\files\build_ver.txt
>>>