python 2.5中的向前兼容打印语句

Chr*_*rle 4 python printing stdout

好吧,也许我只是休息一天.这似乎是许多人必须要问的事情,但谷歌让我失望.我发现的最接近的是这个并没有完全解决这个问题.

在工作中,我在我的桌面上运行Arch(默认情况下是python 3),在我公司的服务器上运行Debian Lenny(这是python 2.5).我想编写一个可以在python 2和3中运行的单个python脚本.这是一个非常简单的脚本,对它来说并不多(大多数它只是调用git使用subprocess).对于该死的print陈述,一切都已经在两个版本的python EXCEPT中都有效.

那里的每个人似乎都在暗示这个from __future__ import print_function伎俩.然而,这是在python 2.6中引入的,我坚持使用2.5.

那么我的选择是什么?如何print使用相同的脚本调用2.5和3?我想的可能是某种包装函数,但这可能不是最"pythonic"的做事方式.你的意见?不,将服务器升级到2.6不是一种选择.

谢谢!

Pwn*_*nna 5

print("hi")from __future__在py 2.5中不在py 2和3上工作

或者,虽然不推荐:

import sys
sys.stdout.write("hi")
Run Code Online (Sandbox Code Playgroud)

  • 那是因为`("hi")`被视为"喜".尝试`print("Hi","there")`,甚至`print("hi",)` (2认同)
  • 作为一个建议,在你的回答中澄清`print("hi")`实际上不是函数print,而是hack.对许多人来说这听起来很明显,但我认为这可能会导致一些混乱. (2认同)