2014-11-21 113 views
-2

所以我這裏有這個代碼,我肯定是微不足道的,我的問題,因爲它是readlines方法一般只是問題:Python的readlines方法()函數編寫[」和 n到文件

 lines = file_in.readlines() 
     self.inputText.insert(1.0, lines,) 

如果我是在一個文本文件中讀取,它會寫這樣一個文本文件

[「示例文本」 \ n']

或東西的性質,而不是我們真正想要的是:

示例文本

如何避免這個問題?

回答

0

readlines返回行列表。要插入到這個文本控件,您可以加入這些項目以新行,像這樣:

lines = file_in.readlines() 
self.inputText.insert("1.0", "\n".join(lines)) 
+0

我想你只是想''「.join(lines)',因爲'readlines()'不會去掉行。 – abarnert 2014-11-21 00:41:23

+0

也可以在這裏使用'read()'。 – 2014-11-21 00:41:31

2

readlines()給你行的列表。當您嘗試將列表轉換爲字符串時,它會給出括號和逗號以及repr(代表程序員的表示,而不是str,代表終端用戶的表示,這就是爲什麼您獲取每個元素的引號和\n而不是換行符)。這不是你想要的。

可以修復它之後,其實還是一個接一個地添加每一行,但有一個更簡單的方法:只使用read(),它給你的整個文件當作一個大的字符串:

contents = file_in.read() 
self.inputText.insert(1.0, contents,) 

除了代碼少之外,很難弄錯,這意味着您不會讓Python浪費時間將內容分解成一堆單獨的行,只是爲了讓它們重新組合起來。


作爲便箋,there's almost never a good reason to call readlines()

相關問題