2014-06-17 33 views
-2
import os 

os.chdir('my directory') 
data = open('text.txt', 'r') 
data = data.replace(",", " ") 
print(data) 

我得到的錯誤:在文本文件從讀更換用空格逗號

AttributeError: '_io.TextIOWrapper' object has no attribute 'replace'

+1

您必須先將文件中的數據讀取到字符串中。閱讀文檔:https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files – jonrsharpe

+1

不要使用'chdir'。只需用'open(os.path.join(my_directory,'text.txt'),'r')作爲數據打開文件:'。 – Matthias

+0

它爲什麼重要? – user3727154

回答

3

你應該在with聲明中打開文件:

with open('text.txt', 'r') as data: 
    plaintext = data.read() 

plaintext = plaintext.replace(',', '') 

with語句確保資源被正確釋放,所以你不必擔心記住要關閉它們。

你丟失的更實質的東西是data是一個文件對象,並且替換工作在字符串上。 data.read()返回文件中的文本字符串。

+0

謝謝!現在有沒有辦法保存這個替換舊版本的更新文件? – user3727154

+0

是的。如果你使用'open('text.txt','w')作爲數據打開文件:'在獲得文本並完成修改之後,你可以使用'data.write(plaintext)'來覆蓋舊文件的內容。我建議在這裏查看[文檔](https://docs.python.org/3/library/functions.html#open),看看你可以從這裏去哪裏 – colinro

+0

真棒,謝謝我會檢查出來 – user3727154

相關問題