![](/img/trans.png)
[英]In python, run in parallel an executable .exe without waiting the .exe to be finished
[英]Windows - Executing an executable (.exe) without the .exe extension
我需要能夠在已重命名而沒有文件擴展名的Python中執行.exe文件(例如,假設.joe-它不代表我所知道的任何內容)。
假設我有“ HelloWorld.exe”,然后將其重命名為“ HelloWorld.joe”並需要執行。
環顧四周,os.system通常用於執行.exe文件,但是如果沒有.exe擴展名,我無法使其正常工作。
無法將文件重命名為具有.exe擴展名(或與此有關的任何內容),在這種“方案”中,我無權訪問可執行文件的源代碼。
您嘗試過subprocess.call
嗎? 為我工作。 文件
例:
#renamed from MobilePASS.exe, runs the program
import subprocess
subprocess.call(["d:/MobilePASS.ubi"])
我無法想象打破Windows哲學的正當理由。 微軟一直說,在系統上,文件擴展名決定了文件的類型及其用法。 已經有許多跨平台的程序,例如,在類Unix系統上名為firefox
,在Windows系統上名為firefox.exe
。
編輯
就是說,Windows接受您提供的命令格式的命令,只要它具有正確的可執行格式即可。 因此,如果您創建一個程序HelloWorld.exe
並將其重命名為HelloWorld.joe
:
HelloWorld.joe
時,cmd.exe將啟動程序(在Windows XP和Windows 7上進行了測試) os.system
或與subprocess
模塊(由eryksun確認) 不能使用os.system
有嚴重命名文件(微軟的意義上)通話,因為引擎蓋下, os.system
使用cmd.exe
。 它是一個Microsoft程序,它查看文件擴展名以了解如何處理該文件擴展名,並且從不執行(作為exe)沒有exe擴展名的文件。
出於完全相同的原因,您將無法在shell=True
使用子流程模塊。 但是當shell=False
,如zeller所說,它直接調用接受任何名稱作為有效可執行文件名稱的CreateProcess
(假設它是...)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.