如何读取,递增1并将值写回网络文件位置

时间:2014-04-22 05:22:47

标签: python

我正在尝试从网络位置的文件“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'

2 个答案:

答案 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
>>>