【发布时间】:2018-12-13 20:07:33
【问题描述】:
我的代码基本上创建了一个.bat 文件,在其上写入一些文本,然后使用Popen 运行它。但我得到这个错误:
PermissionError: [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用
这是我得到的:
def killProcesses(self):
processlist = open("processes.txt")
with open("kill.bat", "w") as batfile:
batfile.write("""echo off
cls
""")
batfile.close()
for line in processlist:
newbatfile = open("kill.bat","a")
newdata = line.replace('\n','')
newbatfile.write("""
Taskkill /IM """+newdata+""" /F""")
p = Popen("kill.bat")
stdout,stderr = p.communicate()
processlist.close()
我做了一些研究,发现在我的代码中添加 with 或 close() 可能会解决问题,但它什么也没做,我仍然收到错误消息。难道我做错了什么?我的猜测是我没有指定确切的文件路径,但是该文件与 python 脚本位于同一目录中,所以我觉得好像我不需要指定确切的路径。任何帮助将不胜感激。
【问题讨论】:
-
你没有关闭
newbatfile。
标签: python python-3.x batch-file subprocess popen