2010-06-01 52 views
6

我試圖取代一個值的文件的一些文本。一切正常,但當我看完文件後,文件中的每一行後都有一個新的(空白)行。有什麼我可以做,以防止這種情況發生。文件替換文本與Python

下面是代碼,因爲我有它:

import fileinput 
    for line in fileinput.FileInput("testfile.txt",inplace=1): 
     line = line.replace("newhost",host) 
     print line 

謝謝 亞倫

回答

3

每個line是從與它的結尾換行符的文件讀取和打印增加了自己的一個。

您可以:

print line, 

行之後不會增加一個換行符。

+0

這個工作知府!感謝您的幫助 – Aaron 2010-06-01 18:33:46

+0

所以事實證明我遇到了一個問題。出於某種原因,當我這樣做文本替換其他文件正在發生。我使用了一個名爲爲的TextWrangler文本編輯程序,當我嘗試打開它告訴我的文件「時發生意外的I/O錯誤(MacOS的錯誤代碼:-36)。在此之前,‘查找和替換’它打開罰款的任何想法這可能是造成這樣的事情 – Aaron 2010-06-02 15:22:36

+0

我也只是看到,當我嘗試查看從它問我是否要查看,因爲它是一個二進制文件的終端原始文件也許這就是問題所在 – Aaron 2010-06-02 15:28:44

2

print line自動添加一個換行符。你最好做一個sys.stdout.write(line)來代替。

0

print增加了一個新行字符:

A '\ n' 字符在年底寫的,除非打印語句用逗號結束。如果聲明僅包含關鍵字print,則這是唯一的操作。