蟒蛇:3.4关闭杀进程的文件
操作系统:WIN7/win10
我要杀死蟒蛇正在运行的进程,并关闭所有它打开的文件:
for proc in psutil.process_iter():
if proc.name() == 'myprocess.exe':
opened = proc.open_files()
proc.kill()
for i in opened:
print(i.path)
io.FileIO(i.path).close()
print(io.FileIO(i.path).closed)
不知何故io.IOBase(i.path).close()
不起作用。
说明:
这就像我想干掉Microsoft Word中使用python,但它留下的一些文件打开。我也想关闭这些文件。
Microsoft Word仅仅是一个例子。这是一个自编写的python程序。打开的文件是:
- 字体(.TTF)
- clr.pyd
- 和.dll-S
我应该如何关闭这些文件?
我发布了一个答案给你的问题,但我敢打赌你试图解决一个不同的问题。如果你能够描述这个问题,那会很有帮助。 – jszakmeister
我想创建一个autoupdater:杀死一个进程删除所有文件并以相同的顺序复制新文件。如果有一些打开的文件,我无法删除它们。 – picibucor
一般来说,这是一个非常困难的问题,尤其是像Word这样的用户可能会积极做有用的事情的情况。你可能会导致他们失去工作,或以某种有趣的方式破坏他们的文件(因为只有部分数据被写出)。你需要一个更好的策略来让这样的工作做得很好。它远远超出了StackOverflow问题,恕我直言。 – jszakmeister