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