首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中运行外部程序(可执行文件)?

在Python中运行外部程序(可执行文件)通常可以使用subprocess模块。subprocess模块允许你创建新的进程、连接到它们的输入/输出/错误管道,并获取它们的返回代码。以下是一个简单的示例,展示了如何使用subprocess模块运行外部程序:

代码语言:python
代码运行次数:0
复制
import subprocess

# 运行外部程序并等待它完成
result = subprocess.run(["ls", "-l"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

# 输出结果
print("返回代码:", result.returncode)
print("标准输出:", result.stdout)
print("标准错误:", result.stderr)

在这个示例中,我们使用subprocess.run()函数运行ls -l命令。我们将stdoutstderr设置为subprocess.PIPE,以便捕获程序的输出。text=True表示以文本形式(而不是字节串)返回输出。

subprocess.run()函数返回一个subprocess.CompletedProcess对象,其中包含有关程序执行的信息,例如返回代码、输出和错误。

如果你需要与外部程序进行交互,例如发送输入或实时接收输出,可以使用subprocess.Popen类。例如:

代码语言:python
代码运行次数:0
复制
import subprocess

# 运行外部程序并等待它完成
process = subprocess.Popen(["ping", "www.google.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

# 实时读取输出
while True:
    output = process.stdout.readline()
    if output == '' and process.poll() is not None:
        break
    if output:
        print(output.strip())

# 获取返回代码
print("返回代码:", process.returncode)

在这个示例中,我们使用subprocess.Popen()函数运行ping www.google.com命令。我们将stdoutstderr设置为subprocess.PIPE,以便捕获程序的输出。text=True表示以文本形式(而不是字节串)返回输出。

然后,我们使用process.stdout.readline()实时读取输出,直到程序完成。最后,我们获取程序的返回代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python生成可执行文件linux_python运行exe程序

Python生成可执行文件exe 一、安装 pyinstaller pip install pyinstaller 二、使用 pyinstaller 命令 使用示例 相对路径 程序目录运行命令pyinstaller...myscript.py 则可以在当前目录生成两个文件夹dist和build,exe文件dist文件夹。...绝对路径 程序目录运行命令pyinstaller C:\myscript.py 则会在当前执行命令的目录生成dist和build文件夹 常用命令参数 -F 指定打包后只生成一个exe格式的文件...如:pyinstaller -F T1.py 则dist文件只有一个exe格式的文件T1 -i 改变生成程序的icon图标 pyinstaller -F -i ....,可以使用os.path.dirname(os.path.realpath(sys.argv[0]))获取当前运行py,当前路径 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

3.6K10

如何利用Vbs 运行外部程序

Scripting.Dictionary —> 用来返回存放键值对的字典对象 3、Wscript.Shell —> 提供一套读取系统信息的函数,如读写注册表、查找指定文件的路径、 读取DOS 环境变量,读取链接的设置...(其中,所有Scripting 对 象都存放在SCRRUN.DLL 文件,所有的Wscript 对象都存放在WSHOM.ocx 文件。)...Set objShell = CreateObject(“Wscript.Shell”) objShell.Run “notepad” 但是需要注意的是, 如果你要执行的可执行文件存放的地方不是程序安装的常用路径...,一般情况下,需要提供合法 的路径名,但是run 在运行解析时,遇到空格会停止,解决的方法是使用双引号,例如:我 的机器上运行qq,代码为: objshell.run """C:\Program

1.5K30

python程序怎样windows运行

如何在命令行里运行python脚本 需要:python;CMD命令行;windows操作系统 1.首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差...2.打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。    脚本第一行一定要写上 #!...usr/bin/python    表示该脚本文件是可执行python脚本    如果您的python目录不在usr/bin目录下,则替换成当前python执行程序的目录 3.编写完脚本之后注意调试、可以直接用...脚本写完之后,打开CMD命令行,前提是python    已经被加入到环境变量,如果没有加入到环境变量,请百度 4.CMD命令行,输入 “python” + “空格”,即 ”python “;    ...将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可

2.4K10

windows:双击运行Python

windows:双击运行Python程序、后台运行Python程序 一、安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退。怎样避免闪退呢?...1、bat启动 start_show.bat  1 python main.py 2、升级版:vbs后台运行(×××面) start_hidden.vbs  12 Set ws = CreateObject...("Wscript.Shell")ws.run "cmd /c start_show.bat",0 二、windows怎么快捷杀掉Python程序?...答:bat杀 stop_all_python.bat  1 taskkill /IM python.exe /F 附录: main.py 123456789101112131415161718192021222324252627282930313233343536...2、不带界面后台运行程序 双击start_hidden.vbs 进程会增加一个python.exe进程,增加的python.exe进程为后台启动的,可以通过日志查看 ? ?

4.4K10

开始Kubernetes运行Python应用程序

本博客,你将了解如何封装应用程序,并使其Kubernetes运行。 此演练假定你是一名开发者,或者至少熟悉命令行(最好是bash shell)。...我们将会做的 获取代码并在本地运行应用程序 创建一个镜像并在Docker运行应用程序 创建deployment并在Kubernetes运行应用程序 先决条件 Kubernetes环境 — 本演练...要验证镜像是否已创建,请运行以下命令: docker image ls ? 应用程序现在已经被容器化,这意味着它现在可以Docker和Kubernetes运行!...运行以下命令让Docker容器运行应用程序并将其映射到端口5001: docker run -p 5001:5000 hello-python 现在导航到http://localhost:5001,...Kubernetes运行 你终于可以Kubernetes运行应用程序了。因为你有一个web应用程序,所以你将创建一个服务(service)和一个部署(deployment)。

3.3K20

VSCode配置python运行环境

使用Visual Studio Code来写Python,你将体验到丝滑的编程体验和无限扩展的可能。...安装插件,如下图,点击左侧边栏红色选中框,输入框输入Python,第一个就是 ? 2.安装几个扩展包。...你可以文件->首选项->设置,打开一个setting.json ? 下图是我的基本配置,包括Python解释器路径,字体设定等。设置完这些之后,保存setting.json。 ?...4.新建python文件及调试运行 在任何位置新建一个test文件夹,然后在此文件夹里新建一个main.py的python文件。然后用vscode打开test文件夹。...launch.json是是系统对本项目的默认配置,如果要单独对本项目进行配置,可以用Ctrl+p打开用户设置按下图进行操作,并可以修改,相关的属性值。 接下来按F5调试运行 ?

24.9K21

如何在Python程序运行Unix命令

问题是,我们可以直接在Python程序中使用此类命令吗? 这就是我将在本教程向您展示的内容。 Unix命令ls列出目录的所有文件。...如果在Python脚本按原样放置ls ,则在运行程序时将得到以下内容: Traceback (most recent call last): File "test.py", line 1, in...os.system() 解决此问题的一种方法是使用Python的os模块的os.system() 。 如文档中所述, os.system() : 子外壳程序执行命令(字符串)。...因此,我们可以Python运行ls命令,如下所示: import os os.system('ls') 这将返回当前目录( .py程序所在的位置)的文件列表。 让我们再举一个例子。...推荐使用的解决方案是Python的subprocess模块call(args)函数。 如有关此功能的文档中所述: 运行args描述的命令。

1.8K10

docker通过X11运行gui程序

本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/99/ 背景 我们都知道Docker是一个开源项目,提供了一个打包、分发和运行任意程序的轻量级容器的开放平台...它没有语言 支持、框架或者打包系统的限制,并可以运行在任何地方、任何时候,从小型的家用电脑到高端的服务器都可以运行。...但是docker的应用环境不止限于web等不需要GUI的场景,如果我们需要经常测试新的框架,或者本地开发一个docker image,随后上传到服务器。...为了演示如何在docker运行GUI程序,我们以firefox为例。 以下所有代码的环境为ubuntu 16.04 amd64, 其他发行版可进行适当修改。...specified No protocol specified No protocol specified No protocol specified 这是由于X11服务默认只允许来自本地的用户启动的图形程序将图形显示在当前屏幕上

10.3K30

程序计算机如何运行

一、程序编译的过程 ? 二、程序加载进CPU的过程 ? 三、CPU的组成 累加寄存器(AC) :主要进行加法运算。 标志寄存器(PSW) :记录状态,做逻辑运算。...程序计数器(PC) :是用于存放下一条指令所在单元的地址的地方。 基质寄存器(BX) :储存当前数据内存开始的位置。 变址寄存器 :储存基质寄存器的相对位置。...寄存器 CPU内部的内存,程序加载进CPU内部的寄存器从而被用来解释和运行。 控制器 计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件需要的操作控制命令。...运算器 计算机执行各种算术和逻辑运算操作的部件。 时钟 它是处理操作的最基本的单位,影响着指令的取出和执行时间。

1.5K20

应用程序设计:动态库如何调用外部函数?

计算机早期时代,由于内存资源紧张,我可是发挥了重大的作用! 不论是 Windows 系统,还是 Unix 系列平台上,到处都能见到我的身影,因为我能为大家节省很多资源啊,资源就是人民币!...张三编译得到可执行文件 main 之后,执行结果完全正确,很开心! ?...张三心想:我是使用 dlopen 的方式来动态加载动态库文件的,不需要对可执行程序重新编译或者链接,直接运行就完事了!...这个傻X张三,对,你确实是 main.c 中加了这个函数,但是你仅仅是加在你的可执行程序的,但是我却压根就看不到这个函数啊!.../main func_in_lib is called func_in_main b = 2 也就是说,我的动态库文件,正确的找到了外部其他模块的函数地址,并且愉快的执行成功了!

2.6K20

Linux系统运行WinForm程序

1,Redhat 5.5企业版运行WinForm程序 首先在Redhat上安装一个mono运行时,如果要运行WinForm程序,还必须安装mono-winforms插件,如果你下载了最新的mono 2.8.1...下面我们看看一个简单的WinForm程序Redhat的运行效果: 显示效果不错,跟在Windows下面的VS2008的设计界面一致,但有一个致命Bug,就是窗体无法接收键盘事件,尽管使用鼠标没有任何问题...,下面是该虚拟机的系统桌面: 它的英文环境下,运行MonoWinForm程序,除了汉字无法显示,没有Redhat的无法输入文字的问题 切换OpenSUSE系统到简体中文环境,再次运行MonoWinForm...3,OpenSUSE上运行Gtk#应用程序 按照mono官方的说法,要想开发跨平台的窗体应用程序,窗体的界面开发应该选择Gtk#,而不是Windows GUI。...总结: 目前Linux平台上运行WinForm程序基本上是可行的,推荐使用OpenSUSE发行版,不过对WinForm应用程序的中文支持还有问题。

6.4K70
领券