3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
沒有任何內(nèi)容表明您必須在當(dāng)前函數(shù)結(jié)束之前關(guān)閉文件,只是您必須確保文件已關(guān)閉。一種方法是將已經(jīng)打開的文件access作為參數(shù)傳遞給,并在access返回后關(guān)閉它。例如,
def access1(fh):
for line in fh:
print(line)
def access2(fh):
# Do something else with the file
# This is the builtin open function, not the one in the question
with open(filename) as f:
access1(f)
f.seek(0) # Reset the file pointer for the next function
access2(f)

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
將 的輸出保存filename.read()
到變量中。該變量將包含文件的內(nèi)容以供以后使用,即使文件已關(guān)閉也是如此。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
是的,關(guān)閉后您需要再次打開文件。當(dāng)我們完成對文件的操作后,我們需要正確關(guān)閉該文件。關(guān)閉文件將釋放資源。
Python 有一個(gè)垃圾收集器來清理未引用的對象,但保持文件打開并不是一個(gè)好方法。
或者我們可以使用
> with open("test.txt", encoding = 'utf-8') as f: # perform file operations
一旦我們退出“with”語句內(nèi)的塊,文件就會(huì)關(guān)閉。
添加回答
舉報(bào)