Python 3 运算符 >> 打印到文件

新手上路,请多包涵

我有以下 Python 代码来编写项目的依赖文件。它在 Python 2.x 上运行良好,但在使用 Python 3 测试时报告错误。

 depend = None
if not nmake:
    depend = open(".depend", "a")
dependmak = open(".depend.mak", "a")
depend = open(".depend", "a")
print >>depend, s,

这是错误:

 Traceback (most recent call last):
  File "../../../../config/makedepend.py", line 121, in <module>
    print >>depend, s,
    TypeError: unsupported operand type(s) for >>:
      'builtin_function_or_method' and '_io.TextIOWrapper'

使用 Python 2.x 和 3.x 的最佳方式是什么?

原文由 José 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 785
2 个回答

在 Python 3 中,print 语句变成了一个函数。新语法如下所示:

 print(s, end="", file=depend)

Python 3 中的这一重大变化意味着在使用 print 语句/函数写入文件时,不可能在 Python 2 和 3 中使用相同的代码。一种可能的选择是使用 depend.write(s) 而不是打印。

更新:JF Sebastian 正确地指出您可以在 Python 2 代码中使用 from __future__ import print_function 来启用 Python 3 语法。这将是跨不同 Python 版本使用相同代码的绝佳方式。

原文由 David Heffernan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题