2017-10-15 85 views
0

有一個文本文件,我想通過Python另一個替換詞,
我不喜歡這樣寫道:如何通過python替換單詞?

demo.py

def modify_text(): 
    with open('test.txt', "r+") as f: 
     read_data = f.read() 
     f.truncate() 
     f.write(read_data.replace('apple', 'pear')) 

運行上面的功能,將追加內容進入test.txt,原始內容仍然存在,f.truncate()不起作用,我想刪除原創內容,我該怎麼辦?

回答

4

truncate取一個可選的大小參數,該參數默認爲當前位置,這是文件的結尾,因爲您只是全部閱讀。所以你實際上將文件截斷爲當前的大小(幾乎不做任何事),然後附加替換的數據。您應該截斷它爲一個空文件:

def modify_text(): 
    with open('test.txt', "r+") as f: 
     read_data = f.read() 
     f.truncate(0) 
     # Here ----^ 
     f.write(read_data.replace('apple', 'pear')) 
+0

'test.txt'的內容更改爲'0000 0000 0000 .....',全是'0000' – zwl1619