【问题标题】:Syntax error on with only when specifying open() mode仅在指定 open() 模式时出现语法错误
【发布时间】:2016-10-30 23:52:28
【问题描述】:

我有以下文件:

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() 中指定模式时才会出现这种情况?

【问题讨论】:

  • lines.append(line.replace('\\', '/') 没有关闭前一行的括号。
  • @PaulRooney 当然。在这里我认为这是一些模糊的版本差异之类的东西。
  • 很遗憾它不能指出问题所在。我一直都遇到这个问题,尤其是使用吞下括号的 IDE。不过,你只是在一段时间后学会寻找它。

标签: python python-2.7 with-statement


【解决方案1】:

替换

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

与:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-11
    • 2013-05-20
    • 2015-02-18
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    相关资源
    最近更新 更多