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

| 好吧,也许我只是放假一天。这似乎是很多人都必须问的问题,但是Google却使我失望。我发现的最接近的东西是无法完全解决此问题。 在工作中,我在桌面上运行Arch(默认情况下为python 3),在公司服务器上运行Debian Lenny(为python 2.5)。我想编写一个可以同时在python 2和python 3中使用的python脚本。这是一个非常简单的脚本,对其作用不大(大多数情况下,它会使用
subprocess
调用git)。对于该死的
print
语句,所有版本的python EXCEPT都已经可以使用。 那里的每个人似乎都在暗示2英镑的把戏。然而,这是在python 2.6中引入的,而我被困在2.5中。 那我有什么选择呢?如何使用相同的脚本在2.5和3中都叫
print
?我当时在想某种包装函数,但这可能不是最“ pythonic”的处理方式。你的想法?不,将服务器升级到2.6是不可行的。 谢谢!     
已邀请:
        
print(\"hi\")
适用于py 2和py 3,而py 2.5中没有
from __future__
或者,尽管不建议这样做:
import sys
sys.stdout.write(\"hi\")
    
        为什么不只使用日志记录框架?它可以缓解您的问题,并且比在整个代码中乱七八糟的打印语句要好得多。     
        这对我有用:
import sys
if sys.version_info[0] == 2:
    def print_(*args):
        w = sys.stdout.write
        w( \', \'.join(str(a) for a in args) )
        w( \'\\n\' )
else:
    print_ = getattr(__builtins__, \'print\')
如果您需要全功能的打印功能,最好使用6个以上的print_。在这种情况下,
from six import print_
// replace all \"print ...\" by \"print_(...)\"
    

要回复问题请先登录注册