慕田峪7331174
2023-12-05 14:57:42
在我的作業中,我應該在一個函數中閱讀完文件后關閉該文件。但是,稍后我必須從另一個函數再次訪問它。關閉文件是強制關閉文件的好習慣的要求,但我覺得沒有必要,因為我需要稍后再次打開文件。有沒有辦法關閉文件并仍然從另一個函數訪問它,或者我應該手動重新打開它。示例代碼:def open(file): filename = open(file, "r") filename.read() filename.close()def access(): for line in filename: print(line)
3 回答

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
沒有任何內容表明您必須在當前函數結束之前關閉文件,只是您必須確保文件已關閉。一種方法是將已經打開的文件access作為參數傳遞給,并在access返回后關閉它。例如,
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)

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