一、os.startfile語法
os.startfile是Python中的一個內置方法,它用于啟動Windows中的默認應用程序來打開文件、文件夾和URL。該方法可以接受一個參數- 文件的路徑(字符串數據類型)。 os.startfile()方法的語法如下:
import os
os.startfile(path [, operation] )
參數path是必需的,它指定要打開的文件的完整路徑。operation是可選的參數,它指定啟動文件時使用的操作方式,如 'print', 'edit' 等。如果未傳遞operation,默認使用“打開”操作。
二、os.startfile語法有參數嗎?
os.startfile()方法有可選參數(operation),用于指定啟動文件時使用的操作方式。例如:
import os
os.startfile("D:\mydocument\myfile.txt","print")
上面的代碼將打開myfile.txt文件并使用默認打印機打印文件內容。
三、os.startfile用法
os.startfile()方法用于啟動其它應用程序打開文件,具有簡單方便的特點,非常適用于對系統資源的訪問。
以下是os.startfile()方法的示例:
import os
os.startfile('D:\mydocument\myresume.docx')
上面的代碼將啟動 Word 應用程序來打開 myresume.docx 文件。
四、os.startfile 參數
作為一個啟動其它應用程序的小工具,肯定擁有一些參數可以調整接口。os.startfile()方法發揮其性能的重點在于對參數的合理靈活的應用。
其中一些常用參數如下:
file_path: 要打開的文件路徑,如D:\mydocument\myresume.docx;
operation: 打開文件時使用的操作名稱,如 'print', 'edit' 等;
working_dir: 指定應用程序的工作目錄,如r'C:\Program Files\Sublime Text 3'。
五、os.startfile 怎么關
在Windows系統下,os.startfile()方法可以啟動應用程序打開文件,但是它并不能關閉應用程序。如果需要關閉應用程序,可以使用另外一個Python的內置模塊 sys, 在命令行的基礎上執行 os.system命令。例如:
import os
import sys
os.startfile('C:\\Program Files\\Sublime Text 3\\sublime_text.exe', 'open')
sys.exit()
上面的代碼打開了Sublime Text 3應用程序,執行完操作后,使用sys.exit()方法強制關閉 Sublime Text 3應用程序。
六、os.startfile關閉主程序
os.startfile是用來執行外部程序,本身并不能關閉應用程序。要關閉一個應用程序,必須明確地請求它關閉。
下面是一個基本示例和解釋:
import os
from time import sleep
os.startfile('C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe')
print('瀏覽器啟動,等待10秒!')
sleep(10)
os.system('taskkill /im iexplore.exe')
上述示例中,os.startfile('C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe')用來啟動Internet Explorer瀏覽器,之后的print用于提示等待10秒,等待瀏覽器加載頁面;sleep()方法用于等待瀏覽器完成頁面加載; os.system()則用于調用Windows'命令行強制關閉特定應用程序。在該方案中,使用Windows中特殊的命令行if語句,shell調用執行后kill掉Internet Explorer瀏覽器。其中 taskkill 命令給出應用程序的名稱(如iexplore.exe)。
七、os.startfile永久打開文件
對于需要保持文件保持打開狀態,可以考慮使用Python中的threading模塊。以下是一個例子:
import threading
import os
import time
def startFile():
os.startfile('C:\\mydocument\\myresume.docx')
def timer(interval):
global t
while True:
time.sleep(interval)
t += interval
if t % 10 == 0:
os.startfile('C:\\mydocument\\myresume.docx')
t = 0
threading.Timer(1, timer, [1]).start()
threading.Thread(target=startFile).start()
while True:
pass
上述例子中運用了threading模塊的定時器和線程等特性,來保持對同一個文件的永久性加載。startFile函數用來調用os.startfile(‘C:\\mydocument\\myresume.docx')來打開文件;timer函數用于設定定時器,每10秒若發現t整除10,就會自動調用os.startfile('C:\\mydocument\\myresume.docx');Thread則用于后臺自動啟動一個新線程,然后在主線程結束后,os中文件依然處于打開狀態。
八、os.startfile打開的文檔如何關閉
如果應用程序是由os.startfile打開的,一種方法是通過操作系統中的任務管理器來手動關閉。另外,也可以使用Python的依賴庫psutil提供的kill方法殺死進程。該方法允許您根據進程的名字、PID等來終止進程。
以下是一個示例:
import os
import time
import psutil
os.startfile('C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe')
time.sleep(10) # wait for browser to start
for process in psutil.process_iter():
if "iexplore.exe" in process.name():
process.kill()
上述示例就是瀏覽器啟動后等待10秒后,通過PSUTIL庫調用process.kill()來殺死iexplore.exe進程。