python 我可以在运行时从脚本打开应用程序吗?

bd1hkmkf  于 2023-01-08  发布在  Python
关注(0)|答案(7)|浏览(158)

我想知道我是否可以在运行时用Python打开任何类型的应用程序?

q43xntqr

q43xntqr1#

假设您使用的是Windows,您将使用以下命令之一,如下所示。
subprocess.call

import subprocess
subprocess.call('C:\\myprogram.exe')

os.startfile

import os
os.startfile('C:\\myprogram.exe')
zu0ti5jz

zu0ti5jz2#

使用system你也可以利用open函数(特别是当你使用mac os/unix环境时。当你面临权限问题时会很有用。

import os

path = "/Applications/Safari.app"
os.system(f"open {path}")
zf2sa74q

zf2sa74q3#

请尝试查看subprocess.call http://docs.python.org/2/library/subprocess.html#using-the-subprocess-module

wbgh16ku

wbgh16ku4#

使用以下代码:-

import subprocess
 subprocess.call('drive:\\programe.exe')
aoyhnmkz

aoyhnmkz5#

试试这个:

import os
import subprocess

command  = r"C:\Users\Name\Desktop\file_name.exe"
os.system(command)
#subprocess.Popen(command)
1yjd4xko

1yjd4xko6#

当然可以,只要导入import subprocess并调用subprocess.call('applicaitonName')即可。
例如,您希望在Ubuntu中打开VS代码:

import subprocess
cmd='code';
subprocess.call(cmd)

如果您需要更多信息,该行也可用于打开应用程序,例如,由于我想捕获错误,所以我使用了stderr

subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
eivnm1vs

eivnm1vs7#

Windows、Linux和MacOS的一些额外示例:

import subprocess

# Generic: open explicitly via executable path
subprocess.call(('/usr/bin/vim', '/etc/hosts'))
subprocess.call(('/System/Applications/TextEdit.app/Contents/MacOS/TextEdit', '/etc/hosts'))

# Linux: open with default app registered for file
subprocess.call(('xdg-open', '/tmp/myfile.html'))

# Windows: open with whatever app is registered for the given extension
subprocess.call(('start', '/tmp/myfile.html'))

# Mac: open with whatever app is registered for the given extension
subprocess.call(('open', '/tmp/myfile.html'))

# Mac: open via MacOS app name
subprocess.call(('open', '-a', 'TextEdit', '/etc/hosts'))

# Mac: open via MacOS app bundle name
subprocess.call(('open', '-b', 'com.apple.TextEdit', '/etc/hosts'))

如果您需要打开特定的HTML页面或URL,则可以使用webbrowser模块:

import webbrowser

webbrowser.open('file:///tmp/myfile.html')

webbrowser.open('https://yahoo.com')

# force a specific browser
webbrowser.get('firefox').open_new_tab('file:///tmp/myfile.html')

相关问题