【Python】运行其他程序、命令和文件

这篇具有很好参考价值的文章主要介绍了【Python】运行其他程序、命令和文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2.10 运行其他程序、命令和打开文件

有时候我们需要通过Python来运行某些程序、命令或者打开文件。这里将介绍一些常见的方法。

2.10.1 os.startfile(文件、程序)

这个函数可以直接打开一个文件或者程序,就像双击一样。非阻塞。

import os

os.startfile("C:\\Windows\\System32\\calc.exe") # 打开计算器
os.startfile("E:\\logs\\loglog.xlsx")  # 使用默认程序打开文件

2.10.2 os.system(文件、程序、命令)

使用os.system()函数可以执行一个系统命令,并返回一个退出码。正常返回0,否则返回1。命令阻塞,带路径文件或程序非阻塞。

import os

os.system("C:\\Windows\\System32\\calc.exe")  # 执行系统命令
os.system('notepad')  # 打开记事本程序
os.system('notepad 1.txt')  # 打开1.txt文件,如果不存在,则创建
exitcode = os.system('dir')  # 列出当前工作下所有文件,并返回退出码

print(exitcode)

2.10.3 os.popen(文件、命令、程序)

还有一种方法是使用os.popen()函数运行其他程序,它可以执行一个系统命令,并返回一个文件对象,可以读取或写入该对象。
例如:

import os

f = os.popen("dir")  # 执行系统命令并返回文件对象
print(f.read())  # 读取文件对象的内容
f.close()  # 关闭文件对象
f = os.popen("e:\\logs\\log.txt")  # 打开文件

2.10.4 subprocess.Popen(程序)

还有一种方法是使用subprocess模块运行其他程序,它可以创建一个子进程,并与之交互。
import subprocess
p = subprocess.Popen(“C:\Windows\System32\calc.exe”) # 创建一个子进程
p.wait() # 等待子进程结束

### 2.10.5 subprocess.run(命令)
subprocess模块的run方法可以执行命令。
cmd = 'wmic computersystem get model'
result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True, check=True)
model_identifier = result.stdout.strip()
print(str(model_identifier, 'utf-8').split('\n')[1])

2.10.6 win32api.ShellExecute(文件、程序)

使用ShellExecute函数可以指定打开方式,如打开、编辑、打印等。非阻塞。
语法如下:
ShellExecute(hwnd, op, file, args, dir, show)
参数说明:
hwnd: 父窗口的句柄,如果没有父窗口,则为0
op : 要运行的操作,为open、print或者为空字符串
file : 要运行的程序,或者打开的脚本
args : 要向程序传递的参数,如果打开的是文件则为空字符串
dir : 程序初始化的目录
show : 是否显示窗口,1:前台打开;0:后台执行
示例:

import win32api

win32api.ShellExecute(0, "open", "C:\\Windows\\System32\\calc.exe", "", "", 1) # 打开计算器
win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 0)  # 后台执行
win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 1)  # 前台打开
win32api.ShellExecute(0, 'open', 'notepad.exe', '1.txt', '', 1)  # 打开文件
win32api.ShellExecute(0, 'open', 'http://www.baidu.com', '', '', 1)  # 打开网页
win32api.ShellExecute(0, 'open', 'D:\\music.mp3', '', '', 1)  # 播放视频
win32api.ShellExecute(0, 'open', 'D:\\mypy1.py', '', '', 1)  # 运行程序

2.10.7 win32process.CreateProcess(程序)

还有一种方法是使用CreateProcess函数运行其他程序,它可以创建一个运行相应程序的进程,并返回进程句柄、线程句柄、进程ID以及线程ID。
语法如下:
CreateProcess(appName, cmdLine, proAttr, threadAttr, InheritHandle, CreationFlags, newEnv, currentDir, Attr)
参数说明:
appName 可执行文件名
cmdLine 命令行参数
procAttr 进程安全属性
threadAttr 线程安全属性
InheritHandle 继承标志
CreationFlags 创建标志
currentDir 进程的当前目录
Attr 创建程序的属性
示例:

import win32process

hProcess, hThread, dwProcessId, dwThreadId = win32process.CreateProcess(None, "C:\\Windows\\System32\\calc.exe", None, None, 0, 0, None, None, win32process.STARTUPINFO())

可以使用win32process.TerminateProcess函数来结束已创建的进程。
语法如下:
TerminateProcess(handle, exitCode)
参数说明:
handle 要操作的进程句柄
exitCode 进程退出代码
也可以使用win32event.WaitForSingleObject等待创建的线程结束。
语法如下:
WaitForSingleObject(handle, milisecond)
参数说明:
handle : 要操作的进程句柄
milisecond: 等待的时间,如果为-1,则一直等待.
示例:

import win32process
import time

handle = win32process.CreateProcess('C:\\Windows\\notepad.exe', '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO())  # 打开记事本,获得其句柄
time.sleep(3)
win32process.TerminateProcess(handle[0], 0)  # 终止进程

或者使用win32event.WaitForSingleObject等待进程结束。文章来源地址https://www.toymoban.com/news/detail-465348.html

import win32event
import win32process

handle = win32process.CreateProcess('C:\\Windows\\notepad.exe', '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO())  # 创建进程获得句柄
print(win32event.WaitForSingleObject(handle[0], -1))  # 等待进程结束

到了这里,关于【Python】运行其他程序、命令和文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件。'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件。...

    这个错误消息表明,系统无法识别 \\\'vue-cli-service\\\' 命令,也就是说系统中没有找到对应的可执行文件。 这通常是因为命令的环境变量没有配置正确导致的。 解决方法: 确保已经全局安装了 vue-cli: npm install -g @vue/cli 尝试使用绝对路径运行 vue-cli-service,例如: /usr/local/bin/vue

    2024年02月13日
    浏览(54)
  • ‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

    一、问题现象 在Win 10环境下,按Windows+R键,打开命令行窗口。 输入mysql,回车后提示如下错误:“\\\'mysql\\\'不是内部或外部命令,也不是可运行的程序或批处理文件。” 二、解决办法 在【我的电脑】(或【此电脑】)图标上点击鼠标右键,点击【属性】。在打开页面的右侧有【相

    2024年02月13日
    浏览(35)
  • ‘javac‘不是内部或外部命令,也不是可运行的程序或批处理文件.

    #  出现这个问题的原因是安装时没有弄清楚安装 jdk 和 jre 。也就是jdk(%JAVA_HOME%)的目录下这个路径之下没有jre。直接到配置环节就行(前面是自己做的笔记) 目录 1.第一次提示,这是安装jdk的位置  2.第一次安装结束,提示第二次,这是安装jre的位置。 3.环境变量配置(全

    2024年04月13日
    浏览(50)
  • ‘mysql‘不是内部或外部命令,也不是可运行的程序或批处理文件

    \\\'mysql’不是内部或外部命令,也不是可运行的程序或批处理文件 🌼刚接触MySQL的朋友经常会遇到这样的问题,因为在安装MySQL时,过程较为繁琐,好不容易安装上就没有完善安装环境,等慢慢接触后就会遇到这样类似的问题。 一、出现原因 遇到这种 不是内部或外部文件 提示

    2023年04月09日
    浏览(42)
  • ❤ npm不是内部或外部命令,也不是可运行的程序 或批处理文件

    cmd或者终端用nvm 安装提示: npm不是内部或外部命令,也不是可运行的程序或批处理文件 提示这个问题,有可能是Node没有安装,也有可能是没有配置环境变量 解决方法: 下载Node 或者配置环境变量 我得电脑 》右键属性 》高级系统设置 》环境变量 之中配置nvm 地址和Node 地址

    2024年02月14日
    浏览(45)
  • ‘java‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

    1.‘java’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 这种情况一般来说是没有配置环境变量或者是没有配置好 (1)找到安装java的位置 (2)进入控制面板==》系统与安全==》系统==》高级设置–》环境变量 2.开始配置 (1)系统变量中新建 变量名:JAVA_HOME 变

    2024年02月07日
    浏览(44)
  • ‘cnpm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

    ‘cnpm’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 2.0.1查看node 环境 检查node环境是否有问题 2.0.2 cnpm 要安装好 参考博客:Node.js 环境安装到配置环境变量 安装cnpm 通过 npm install cnpm -g 将cnpm 安装到全局 如果安装完成还是没有!!!环境变量问题 查看node np

    2024年02月02日
    浏览(88)
  • ‘pip‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    pip不是内部或外部命令,也不是可运行的程序或批处理文件 到底有多么神秘? 不亲身体验,怎可知道?博主最近就体验了一把。 本来想用 pip install 几个包的,后来它提示我 pip 包要更新了,我就跟它意思更新,但是更新完之后,再用 pip install 的时候就会出现下面的情况:

    2024年03月24日
    浏览(51)
  • “node“不是内部或外部命令,也不是可运行的程序 或批处理文件

    该问题有两种可能要不就是没有安装node 要不就是node环境没有配置 具体解决办法如下: 情况1: 安装node.js,在官网下载  .msi  文件:Node.js 中文网 (nodejs.cn) 安装成功后 打开cmd,输入命令\\\"path\\\",输出结果中包含了我计算机中node.js的自定义安装路径 D:developnodejs :(默认安装

    2024年02月06日
    浏览(51)
  • ‘git‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

    在执行  git clone  命令时遇到了一个错误,提示 “git” 不是内部或外部命令。这是因为你的系统中没有安装 Git。 Git 是一个版本控制工具,它需要在你的计算机上安装并配置后才能正常工作。你可以按照以下步骤来安装 Git: 访问 Git 的官方网站(https://git-scm.com/)。 在网站

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包