雖然做了一些Python的教程,這本書的作者提出以下(打開一個文件並讀取其內容):打開文件並在一行中閱讀內容?
#we could do this in one line, how?
in_file = open(from_file)
indata = in_file.read()
我怎樣才能做到這一條線?
雖然做了一些Python的教程,這本書的作者提出以下(打開一個文件並讀取其內容):打開文件並在一行中閱讀內容?
#we could do this in one line, how?
in_file = open(from_file)
indata = in_file.read()
我怎樣才能做到這一條線?
你可以從文件處理程序中獲取文件的所有內容,方法是簡單地擴展你的路徑並從中讀取。
indata = open(from_file).read()
但是,如果您使用的是with
塊它更明顯發生了什麼,更容易擴展。
with open(from_file) as fh: # start a file handler that will close itself!
indata = fh.read() # get all of the contents of in_file in one go as a string
除此之外,你應該保護你的文件打開和關閉IOErrors
如果(例如)您的文件路徑不存在。
最後,文件默認情況下以只讀方式打開,如果您(或其他人以後)嘗試寫入文件,則會產生錯誤,這將保護數據塊。根據您的需要,您可以將其從'r'
更改爲variety of other options。
這是上述概念的一個相當完整的例子。
def get_file_contents(input_path):
try:
with open(input_path, 'r') as fh:
return fh.read().strip()
except IOError:
return None
爲什麼你想在一行中做到這一點?你想如何獲得數據,一個大塊'indata = open(from_file).read()'或一列行'indata = list(open(from_file))' – AChampion
任何時候你打開一個文件,你應該可能使用'with'塊。看看[這篇文章](http://stackoverflow.com/a/3644618/4541045)關於爲什麼你要小心打開和關閉文件的一些解釋。 – ti7
@AChampion。謝謝你非常有用。我確實需要將數據作爲一個大塊(如你所建議的)爲什麼?以便更好地學習編碼。謝謝 –