簡體   English   中英

為什么我的腳本在調用.EXE后停止執行命令?

[英]Why does my script stop executing commands after calling an .EXE?

以下是Python腳本中的相關代碼,其中執行一些命令來復制可執行文件然后執行它:

exe_file_path = os.getcwd() + r'\name_of_executable.exe'
temp_loc = os.environ['temp']

subprocess.Popen(r'copy %s %s' % (exe_file_path, temp_loc), shell=True)
exe_file_path = os.environ['temp'] + r'\name_of_executable.exe'
subprocess.Popen(r'start %s' % (exe_file_path), shell=True)
subprocess.Popen(r'del %s' % (exe_file_path), shell=True)

目前, name_of_executable.exe只打印出文本,然后調用system("pause")

暫停執行后,我按enter ,我會假設可執行文件將關閉,Python腳本將繼續,但Python的最后一行不會執行。

這是因為我正在使用TEMP文件夾嗎? (我正在以管理員身份運行的命令提示符執行。如何讓腳本運行?

所有程序將一個接一個地立即啟動。 調用每個Popen對象進行通信以等待程序終止。

此外,您使用格式字符串是不必要的危險。 ['copy', exe_file_path, temp_loc]自動轉義exe_file_pathtemp_loc任何奇怪字符(並且更容易閱讀)。

順便說一下,Python在shutilos中復制和刪除文件有很好的功能; 沒有必要為此調用shell程序。

而不是連接字符串來確定exe_file_path ,你應該使用os.path.join (雖然這不重要,因為你的程序似乎鎖定到Windows)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM