[英]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.