仅在指定open()模式时才会出现语法错误

时间:2016-10-30 23:52:29

标签: python python-2.7 with-statement

我有以下文件:

import sys

lines = []
with open(sys.argv[1]) as f: #this works fine
    for line in f:
        lines.append(line.replace('\\', '/')
with open(sys.argv[1], 'w') as f: #this gives a syntax error
    for line in lines:
        f.write(line)   

每当我尝试运行它时,我在第二个with语句的with部分出现语法错误:

  File "ChangeSlashes.py", line 7
    with open(sys.argv[1], 'w') as f:
       ^
SyntaxError: invalid syntax

为什么会发生这种情况,为什么只有当我在open()中指定模式时呢?

1 个答案:

答案 0 :(得分:2)

替换

lines.append(line.replace('\\', '/')

使用:

lines.append(line.replace('\\', '/'))