【问题标题】:Python invalid syntax with "with" statement带有“with”语句的 Python 语法无效
【发布时间】:2011-02-14 21:33:58
【问题描述】:

我正在为 linux (maemo) 编写一个简单的 python 应用程序。但是我在第 23 行收到SyntaxError: invalid syntaxwith open(file,'w') as fileh:

代码可以看这里:http://pastebin.com/MPxfrsAp

我无法弄清楚我的代码有什么问题,我是 python 和“with”语句的新手。那么,是什么导致此代码出错,我该如何解决呢? “with”语句有问题吗?

谢谢!

【问题讨论】:

  • 你用的是什么版本的 Python?

标签: python syntax syntax-error


【解决方案1】:

很可能,您使用的是不支持 with 语句的早期版本的 Python。以下是在不使用with 的情况下如何做同样的事情:

fileh = open(file, 'w')
try:
    # Do things with fileh here
finally:
    fileh.close()

【讨论】:

  • 这行得通,谢谢!但是现在我遇到了 open 函数的问题,该文件不存在。如果文件不存在,我希望它创建文件。我该怎么做? (我的印象是 open 函数也可以创建文件)
  • @mrlanrat:显示您的代码和导致您认为问题是不存在的文件的错误消息
  • @mrlanrat,Python 默认会创建不存在的文件。问题是目录。 ~./appCounter 不是有效目录。 Python 不会像 shell 那样自动扩展 ~,而你有一个错位的 .。您可能想使用路径 os.path.join(os.path.expanduser("~"), "appCounter") 或类似的东西。
  • 请注意,with 是在 2.5 中引入的,需要 from __future__ import with_statement,默认情况下在 2.6 中。在 2.4 及之前的版本中,需要try/finally 以确保文件被关闭。
  • @mrlanrat, open(filename, 'w') 这样做。你读过我所说的关于 Python 不会自动调用 shell 来扩展的内容吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-18
  • 2021-09-07
相关资源
最近更新 更多