python2.5中的Forwardcompatible print语句

2024-09-21 03:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,也许我只是休息一天。这似乎是很多人都在问的问题,但谷歌让我失望得要命。我发现的最接近的东西是this,它并没有完全解决这个问题。在

在工作中,我在桌面上运行Arch(默认情况下是python3),在公司的服务器上运行debianlenny(这是python2.5)。我想编写一个在python2和python3中都能工作的python脚本。这是一个非常简单的脚本,对它来说并不多(主要是它使用subprocess调用git)。除了该死的print语句之外,所有的东西都已经在这两个版本的python中运行了。在

似乎每个人都建议使用from __future__ import print_function技巧。不过,这是在Python2.6中引入的,我还是坚持使用2.5。在

我有什么选择?如何在2.5和3中使用相同的脚本调用print?我在想也许是某种包装器函数,但这可能不是最“Python式”的做事方式。你的想法?不,升级服务器到2.6不是一个选择。在

谢谢!在


Tags: git版本服务器脚本情况公司语句this
3条回答

print("hi")在py2.5中没有from __future__同时在py2和3上工作

或者,尽管不建议:

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')

如果您需要全功能的打印功能,最好使用打印自six。在这种情况下

^{pr2}$

为什么不直接使用logging框架呢?它减轻了您的问题,并且比在代码中乱七八糟的打印语句要好得多。在

相关问题 更多 >

    热门问题