簡體   English   中英

從子流程標准輸出中關閉文件

[英]Closing files from subprocess stdout

這是我的代碼

fh = open("temp.txt", "w") 
process = subprocess.Popen(["test"], shell=True, stdout=fh)

如果進程沒有退出,是否有必要釋放文件句柄或殺死子進程就足夠了?

您的文件對象是由Python代碼打開的,不會被子進程關閉。 確保正確關閉它是您的責任。

您可以使用(不是最佳選擇):

fh = open("temp.txt", "w") 
process = subprocess.Popen(["test"], shell=True, stdout=fh)
fh.close()

或更好):

with open("temp.txt", "w") as fh:
    process = subprocess.Popen(["test"], shell=True, stdout=fh)

后者將確保您的文件對象始終正確關閉,即使subprocess命令由於某些錯誤而失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM