Python 開啟目錄與指定檔案
阿新 • • 發佈:2019-06-25
Python開啟外部檔案有很多方法,
os.popen 開啟外部程式,但發現只能開啟檔案所在目錄的檔案
os.system 可開啟外部檔案 os.system(command) command 要執行的命令,相當於在Windows的cmd視窗中輸入的命令。如果要向程式或者指令碼傳遞引數,可以使用空格分隔程式及多個引數。
os.startfile (推薦)
可開啟外部程式 os.startfile (path [, operation]) 這樣執行的動作與在Windows Explorer中雙擊檔案相同。在應用程式執行之後, 函式就會返回。此外不能等待完成或者從應用程式獲得退出程式碼。path的值是相對於當前目錄而言。operation是一個可選的字串, 用於指定開啟path時執行的動作。它的預設值是 'open', 但也可以將它置為'print’、'edit'、'explore'或'find'[確切的列表跟path的型別有關( Windows)]。
win32process.CreateProcess
引數說明:
CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles ,dwCreationFlags , newEnvironment , currentDirectory , startupinfo )
其引數含義如下。 appName:可執行的檔名。 commandLine:命令列引數。 processAttributes:程序安全屬性,如果為None,則為預設的安全屬性。 threadAttributes:執行緒安全屬性,如果為None,則為預設的安全屬性。 bInheritHandles:繼承標誌。 dwCreationFlags:建立標誌。 newEnvironment:建立程序的環境變數。 currentDirectory:程序的當前目錄。 startupinfo :建立程序的屬性。 |
使用:
1 import win32process 2 win32process.CreateProcess('c:\\windows\\notepad.exe', '', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None , win32process.STARTUPINFO())
---------------------- 推薦使用startfile 和 win32process
1 Obj='C:\Users\Administrator\Desktop' or 'C:\Users\Administrator\Desktop\chrome.exe' 2 if Obj and os.path.exists(Obj): #檔案or 目錄存在 3 if os.path.isfile(Obj): 4 import win32process 5 try: # 開啟外部可執行程式 6 win32process.CreateProcess(Obj, '',None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None ,win32process.STARTUPINFO()) 7 except Exception, e: 8 print(e) 9 else: 10 os.startfile(str(Obj)) # 開啟目錄 11 12 else: # 不存在的目錄 13 print('不存在的目錄')
&nbs