这是我的代码
fh = open("temp.txt", "w")
process = subprocess.Popen(["test"], shell=True, stdout=fh)
如果进程没有退出,是否需要释放文件句柄或者杀死子进程就足够了?
答案 0 :(得分:2)
您的文件对象是由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)
后者将确保您的文件对象始终正确关闭,即使子进程命令失败并出现一些错误。