我在python打開的文件用下面的代碼,爲什麼Windows命令Processor在python中打開文件後退出?
s=subprocess.Popen(fileName,shell=True)
s.wait()
os.remove(fileName)
是否文件被關閉與否,它直接跳到os.remove(),通過該時間文件未關閉。因此得到以下例外。
WindowsError: [Error 32] The process cannot access the file because it is being used by another process
上述問題是發生在其他機器,但在我的機器,直到文件被關閉碼流不來os.remove()
我怎樣才能讓subprocess.Popen()應等到文件關閉。
你可能想'os.startfile(文件名)'或'webbrowser.open(文件名)'代替。你也可以明確地指定相關的程序:'subprocess.check_call([program,filename])' – jfs
嗨J.F. Sebastian,我嘗試了os.startfile(filename)和webbrowser.open(filename)兩種方式。有了這兩種方式文件打開,但在這裏,我們無法追蹤文件何時關閉。使用subprocess.check_call([program,filename])我們可以打開文件,並且我們也可以在文件關閉時跟蹤事件。這是在我的系統中工作,但在其他機器我無法跟蹤文件關閉事件 –