所以我這裏有這個代碼,我肯定是微不足道的,我的問題,因爲它是readlines方法一般只是問題:Python的readlines方法()函數編寫[」和 n到文件
lines = file_in.readlines()
self.inputText.insert(1.0, lines,)
如果我是在一個文本文件中讀取,它會寫這樣一個文本文件
[「示例文本」 \ n']
或東西的性質,而不是我們真正想要的是:
示例文本
如何避免這個問題?
所以我這裏有這個代碼,我肯定是微不足道的,我的問題,因爲它是readlines方法一般只是問題:Python的readlines方法()函數編寫[」和 n到文件
lines = file_in.readlines()
self.inputText.insert(1.0, lines,)
如果我是在一個文本文件中讀取,它會寫這樣一個文本文件
[「示例文本」 \ n']
或東西的性質,而不是我們真正想要的是:
示例文本
如何避免這個問題?
readlines
返回行列表。要插入到這個文本控件,您可以加入這些項目以新行,像這樣:
lines = file_in.readlines()
self.inputText.insert("1.0", "\n".join(lines))
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()
。
我想你只是想''「.join(lines)',因爲'readlines()'不會去掉行。 – abarnert 2014-11-21 00:41:23
也可以在這裏使用'read()'。 – 2014-11-21 00:41:31