运行python脚本而不打印换行符?

时间:2012-03-18 02:07:52

标签: python

每当我运行python脚本时,最后也会打印一个新行。

我能阻止这种情况的唯一方法是在末尾使用posix._exit(0)来避免Python的清理代码。有更便携的方式吗?

(对不起,如果这是一个重复的问题/似乎很明显可以回答。不幸的是,我只看到有关没有换行的打印问题)

示例脚本:

import os
#nothing actually done

非便携式解决方案:

import os,posix
#nothing actually done
posix._exit()

操作系统:Windows 经测试:cygwin中的Python,原生PyPy

2 个答案:

答案 0 :(得分:2)

此脚本可以执行您想要的操作:

import sys

sys.stdout.write("Hello world")

诀窍是避免使用内置的print语句。

答案 1 :(得分:2)

你所描述的不是正常的python行为,所以你的设置可能有些奇怪。尝试通过剥离python做的事情来调试它:用-E(忽略环境选项)和/或-S调用python(不要加载site)。如果这没有帮助,请查看其他想法的python调用选项,或尝试使用调试器。

posix._exit(0)开始,有些东西(在site?中)可能会设置一个生成换行符的退出处理程序。查看sys.exitfunc和模块atexit,并检查它们是否正在使用中。