2011-09-07 63 views
1

我有一個打印出一個文件到外殼Python腳本:打印從Python中的read()增加了一個額外的換行符

print open(lPath).read() 

如果我在的路徑傳遞到一個文件中有以下內容(沒有括號,他們只是在這裏這麼換行符可見):

> One 
> Two 
> 

我得到以下輸出:

> One 
> Two 
> 
> 

額外的換行符來自哪裏?我在Ubuntu系統上用bash運行腳本。

回答

8

使用

print open(lPath).read(), # notice the comma at the end. 

print增加了一個換行符。如果用逗號結束print語句,它將添加空格。

您可以使用

import sys 
sys.stdout.write(open(lPath).read()) 

如果你不需要任何的print的特殊功能。

如果切換到Python 3或Python的2.6+使用from __future__ import print_function,你可以使用end參數從添加一個新行停止print功能。

print(open(lPath).read(), end='') 
+0

謝謝,我是Python新手! –

1

也許你應該寫:

print open(lPath).read(), 

(通知在末尾的尾隨逗號)。

這會阻止print在其輸出結尾處放置一條新線。

相關問題