一、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进程。