![](/img/trans.png)
[英]Why does my python script stop executing when I try to make my API call?
[英]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_path
和temp_loc
任何奇怪字符(並且更容易閱讀)。
順便說一下,Python在shutil和os中復制和刪除文件有很好的功能; 沒有必要為此調用shell程序。
而不是連接字符串來確定exe_file_path
,你應該使用os.path.join
(雖然這不重要,因為你的程序似乎鎖定到Windows)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.