2012-03-18 63 views
2

每當我運行一個python腳本時,最後還會打印一行新行。運行python腳本而不在最後打印換行符?

我可以阻止它的唯一方法是在最後使用posix._exit(0)來避免Python的清理代碼。有更便攜的方式嗎?

(很抱歉,如果這是一個重複的問題/看似顯而易見回答有關印刷不幸的是,我只看到問題都沒有一個換行符。)

示例腳本:

import os 
#nothing actually done 

非便攜式解決方案:

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

操作系統:Windows 與測試:在Cygwin的Python中,本地PyPy

+0

你的意思是說你想:'> python myscript.py'並得到'> python myscript.py>'而沒有提示移動到下一行? – JoshRagem 2012-03-18 02:17:51

+0

@JoshRagem,有點'。我實際上得到了兩條新線,一條是我輸入的來運行腳本,另一條是Python打印的。我希望它只是轉移到下一行,而不是留下空白的行。 – 2012-03-18 02:18:59

+1

什麼操作系統?我不這樣做。 – JoshRagem 2012-03-18 02:21:11

回答

2

你描述的不是正常的python行爲,所以你的設置可能有些奇怪。嘗試通過剝離python所做的下面的工作來調試它:使用-E(忽略環境選項)和/或-S(不要加載site)調用python。如果這沒有幫助,請查看其他python調用選項以獲取想法,或嘗試使用調試器。

由於posix._exit(0),很可能是(在site?)設置了一個退出處理程序來生成換行符。查看sys.exitfunc和模塊atexit,並檢查它們是否在使用中。

2

該腳本可以做你想做的:

import sys 

sys.stdout.write("Hello world") 

關鍵是要避免使用內置print聲明。

+0

我沒有使用打印。 – 2012-03-18 02:12:57

+0

即使只有'import os',python仍然會打印一個新行。 – 2012-03-18 02:27:16

+0

正是我在找什麼,謝謝! – ditheredtransparency 2017-10-19 16:43:16