在Python中杀死任务

时间:2013-03-13 11:34:43

标签: python

这是我用PyInstaller编译python代码而不用手工编写的程序:

prog = raw_input('File to compile: ')
shutil.copy(prog,'C:\Users\Hydro\Desktop\Projects\Python\PyInstaller\\'+prog)
os.chdir('PyInstaller\\')
subprocess.call(['python', 'PyInstaller.py', prog, '--onefile'])
x = os.getpid()
print x
os.kill(x,9)
var = prog.split('.')
new_var = var[0]
os.chdir(new_var+'\\'+'dist')
shutil.copy(new_var+'.'+'exe','C:\Users\Hydro\Desktop\Projects\Python')
shutil.rmtree('C:\Users\Hydro\Desktop\Projects\Python\PyInstaller\\'+new_var)
os.remove('C:\Users\Hydro\Desktop\Projects\Python\PyInstaller\\'+prog)
raw_input('File Compiled. Press Enter to Exit')

由于进程正在使用我尝试删除的目录,因此无效。

我已经问过为什么在PyIRC上但无济于事。我也试过杀死PID,但是我杀了错误的。

有人能够帮助我或者告诉我为什么这会在编译后禁止我删除dir?所以我能想出一个解决方案吗?

1 个答案:

答案 0 :(得分:1)

您的应用程序似乎是使用您尝试删除的目录的应用程序。通过调用os.chdir(),您将在删除目录之前将当前工作目录更改为其他目录:

org_dir = os.getcwd()

... # your stuff

os.chdir(org_dir)
# delete the dir