有一個班輪閱讀Python中的文件中的所有行,而不是標準:Python的文件啜食
f = open('x.txt')
cts = f.read()
f.close()
看起來這是這樣做往往有一定是一個單襯墊。有任何想法嗎?
有一個班輪閱讀Python中的文件中的所有行,而不是標準:Python的文件啜食
f = open('x.txt')
cts = f.read()
f.close()
看起來這是這樣做往往有一定是一個單襯墊。有任何想法嗎?
這會發出聲音的內容合併到一個字符串在Python 2.6 及以上:
with open('x.txt') as x: f = x.read()
,這將創建行的列表:
with open('x.txt') as x: f = x.readlines()
這些方法保證立即關閉在讀取之後立即輸入文件。
腳註:
from __future__ import with_statement
使用。一箇舊的做法,不保證立即關閉就是用它來創建一個字符串:
f = open('x.txt').read()
這創造行的列表:
f = open('x.txt').readlines()
實際上它會立即在某些版本的CPython中關閉,但關閉「只有當垃圾收藏家在Jython,IronPython和CPython的未來版本中都可以使用它。
這就是我會猜到的,但不知道什麼時候打開的文件會被關閉。謝謝! –
如果你在Python3,請務必正確尊重你的文件的輸入編碼,例如:
import codecs
with codecs.open(filename, 'r', encoding="utf8") as file:
cts = file.read()
查找編解碼器的名稱在Python3 codec list列表。 (該機制也是可取的Python2,只要你想到的任何非ASCII輸入)
我想知道爲什麼這是被拒絕的。 –
有些人可能會認爲編碼問題是無關緊要的。另外,我的代碼並不是最小的:在open(filename,'r',encoding ='utf8')中使用builtin'open'將會保存導入語句並使問題更好地回答。 –
好笑的是,我又需要這一點,我用Google搜索它。沒想到我自己的問題就來了:) –
我還留着找到這個時候,我實際上是尋找http://stackoverflow.com/questions/1450393/how-do-you-read-from-stdin-in-python – tripleee