我有以下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的最佳方法是什么?
在Python 3中,print语句已成为函数。新语法如下所示:
print(s, end="", file=depend)
Python 3中的这一重大更改意味着使用print
语句/函数写入文件时,无法在Python
2和3中使用相同的代码。一种可能的选择是使用depend.write(s)
而不是打印。
更新 :JF Sebastian正确指出,您可以from __future__ import print_function
在Python
2代码中使用以启用Python 3语法。这将是在不同的Python版本中使用相同代码的绝佳方法。
什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 接下来让我们一个个来学习Python的运算符。 Python算术运算符 以下假设变量a为10,变量b为21:
什么是运算符? 本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 接下来让我们一个个来学习Python的运算符。 Python算术运算符 以下假设变量a为10,变量b为21:
问题内容: 我经常使用Python的语句来显示数据。是的,我知道方法,方法和方法。我也知道splat运算符()可用于将Iterable扩展为函数参数。但是,我似乎无法通过声明来做到这一点。使用清单: 使用元组: 我想念什么吗?这根本不可能吗?接下来到底是什么?该文档说该关键字后面是逗号分隔的表达式列表,但是我想这与列表数据类型不同。我在SO和Web上做了很多挖掘工作,却没有找到明确的解释。 我正在
问题内容: 我正在使用Python打开文本文档: 我想将字符串变量的值替换为文本文档。有人可以让我知道怎么做吗? 问题答案: 如果使用上下文管理器,则将自动为你关闭文件 如果你使用的是Python2.6或更高版本,则最好使用 对于python2.7及更高版本,你可以使用代替 在Python3中,该函数有一个可选参数 Python3.6引入了f字符串作为另一种选择
问题内容: 为什么尝试直接打印到文件而不是产生以下语法错误: 从帮助(builtins),我有以下信息: 那么将标准流打印写入更改为什么正确的语法呢? 我知道有不同的也许更好的写入文件的方法,但是我真的不明白为什么这应该是语法错误… 一个很好的解释将不胜感激! 问题答案: 如果要在Python 2中使用该函数,则必须从导入: 但是,即使不使用该函数,也可以达到相同的效果:
问题内容: 我有一个文本文件,需要将其打印到特定的网络打印机。我知道打印机的名称。 到目前为止,我已经创建了Printable类来打印文件(票证)。 我这样称呼TicketPrintPage: 它的工作原理还不错,但是: -我的文本不多于一页(找到了一些算法,但是很好) -我不知道打印机何时完成打印,如果我尝试打印两页如果打印机连续打印了多张票证,则会返回“打印机未就绪”消息。 所以问题又来了:没
问题内容: 文件创建成功,但是我无法让PrintWriter将任何内容打印到文本文件。码: 问题答案: 您必须刷新和/或关闭文件才能将数据写入磁盘。 添加您的代码:
问题内容: 我已经搜索过,但我只能找到有关另一种方式的问题:将stdin写入文件:) 有没有一种快速简便的方法将文件内容转储到stdout? 问题答案: 当然。假设您有一个字符串,文件名为,下面的技巧就可以了。