常用python执行shell的命令_羊羊羊羊吃青草的博客-程序员秘密_python shell命令

技术标签: python  shell  Python库  bash  后端  

一、os.system(“pwd”)

1.

  • 返回值依赖于系统,程序阻塞等待返回
  • 直接返回系统的调用返回值
  • windows、Linux下是不一样的

2.样例

在这里插入图片描述

二、os.popen(command[, mode[, bufize]])

1. 执行后的结果是个字符串

2. 使用

import os
result = os.popen("pwd").read()

3.样例

在这里插入图片描述

三、commands模块(Python2中的模块)

1. 有以下三个函数:

函数 说明 备注
getoutput(cmd) Return output (stdout or stderr) of executing cmd in a shell. 返回字符串
getstatus(file) Return output of “ls -ld file” in a string. 已被丢弃,不建议使用
getstatusoutput(cmd) Return (status, output) of executing cmd in a shell. 返回一个元祖

2. 使用

import commands
a, b = commands.getstatusoutput("pwd")
a是退出的结果,b是输出的结果

3.样例

在这里插入图片描述

  • python 3.0 之后移除此命令,使用 subprocess代替

四、 subprocess模块

  • subprocess 模块启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。

. 样例

1. subprocess.run()

  • subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)
    在这里插入图片描述

2. Popen()

subprocess的核心,子进程的创建和管理都靠它处理。

1)subprocess.Popen(command, shell=True)

  • command是bash命令时,shell必须为True,在shell下执行command命令
  • 当command是可执行文件时,shell可任意

2)Popen对象的方法

  • poll():
    • 检查进程是否终止,如果终止返回 returncode,否则返回 None。 wait(timeout): 等待子进程终止。
  • communicate(input,timeout):
    • 和子进程交互,发送和读取数据
  • send_signal(singnal):
    • 发送信号到子进程 。
  • terminate():
    • 停止子进程,也就是发送SIGTERM信号到子进程。
  • kill():
    • 杀死子进程。发送SIGKILL 信号到子进程。

3)构造函数:

  • class subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None,
    preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False,
    startupinfo=None, creationflags=0,restore_signals=True, start_new_session=False, pass_fds=(),
    *, encoding=None, errors=None)

4)样例:

  • 创建一个子进程,然后执行一个简单命令
    在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_18874531/article/details/119207937

智能推荐

Vue 报错 Failed to mount component: template or render function not defined._AvatarGiser的博客-程序员秘密

我的错误是没有 <template>标签,因为不需要界面就写成如下。开发环境报错,但mounted中代码也运行。且项目编译不通过。。。<script>export default { mounted () { // TODO }}</script>正确如下:<template></template><script>export default { mounted (..

【相机】(1)——Intent调相机的2种方式以及那些你知道的和不知道的坑_intent 调用相机_衷水木先生的博客-程序员秘密

要不要都行的开篇随着现代信息量的疯狂增长、信息的快速交流,单纯的文字信息已经难以满足日常、工作的沟通,一张图片往往能达到一图胜过千万言的效果,前段时间不是盛行“有图有真相的”说法;还有一些场景则需要通过上传照片来验证身份的合法性,比如手机银行要求上传身份证正反照,手持身份证照 ……废话多了点,总之,作为移动端开发者的你,肯定会遇到这样那样拍照上传的需求,接下来我们来试试 Intent 调用 Andr

解决安装bundler提示ERROR: Error installing bundler:bundler requires Ruby version >= 2.3.0._杨林伟的博客-程序员秘密

贴上错误代码:上图我们安装的bundler,默认是最新的,提示需要的Ruby版本号必须大于等于2.3.0,在这里我们不建议去升级Ruby,直接指定bundler版本安装即可,具体选择哪个bundler版本,大家可以去官网参考(https://rubygems.org/)。解决方案:下面是指定版本去安装(如果不想去官网查看,直接执行以下脚本即可安装成功):gem install bundl...

同花顺python_【本地直连】同花顺 Python量化交易接口上线_weixin_39938724的博客-程序员秘密

来源:雪球App,作者: 私募之家THS,(https://xueqiu.com/5808549553/129022113)导读:同花顺智能交易终端MindGo版已上线2年多,凭借着同花顺深厚的技术底蕴,不断地对终端进行优化。至今,已服务近1000位个人客户,超过200家私募机构,市场份额不断扩大。目前终端已实现:支持股票、指数、基金、期货、外汇、黄金T+D等6个品种日/分钟级策略回测投研策略无缝...

MySQL -- 数据类型_zhubao124的博客-程序员秘密

数据类型 一、数值类型    (1)、整型1、int大整型(4个字节)                 存储范围:0 ~ 2*32 - 1            2、tinyint 微小整型(1个字节)                1、有符号 signed(默认) -128~127                2、无符号 unsigned 0~255         ...

join()方法的使用_join方法使用_EclipseO2的博客-程序员秘密

一、join()方法的使用主线程创建并启动子线程,如果自线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束。如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据中的值,就要用到 join() 方法先来看一个不用 join() 方法的例子public class MyThread extends Thread { @Override ...

随便推点

Python 中各种imread函数的区别与联系_浩瀚之水_csdn的博客-程序员秘密

Python 中各种imread函数的区别与联系最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误。如果你正好也对此感到困惑可以看下这篇总结。当然,要了解具体的细节,还是应该 read the fuck code和API document,但貌似python的很多模块文档都不是很全,所以只能多看代码和...

Android根据图片path转成Uri,分享图片_华-山的博客-程序员秘密

先给出代码:通过uri.fromfile()方法将图片path,转化为uri,然后送给EXTRA_STREAM,实现分享//分享 Uri pa=Uri.fromFile(new File(filePath));//根据路径转化为uri Intent imageIntent = new Intent(Intent.ACTION...

2021-01-05centos7下使用war包直接启动jenkins踩坑_jenkins 直接用war包启动风险_Sandul的博客-程序员秘密

centos7下使用war包直接启动jenkins踩坑1.Jenkins安装时Web页面报错:该Jenkins实例似乎已离线2.根据网上一大堆千篇一律的帖子但是还是不管用3.最后我试着ping一下www.baidu.com发现4.所以我直接去centos7的网络配置里配置DNS5.修改之后重启网络服务systemctl restart network(也可以用source命令刷新一下修改的文件)然后再ping www.baidu.com ,可以正常ping通6.最后回到jenkins的页面配置

开源日志系统log4cplus(七)_demonzsmj12315的博客-程序员秘密

经过短暂的熟悉过程,log4cplus已经被成功应用到了我的项目中去了,效果还不错,:)除了上文提及的功能之外,下面将介绍log4cplus提供的线程和套接字的使用情况。### NDC ###首先我们先了解一下log4cplus中嵌入诊断上下文(Nested Diagnostic Context),即NDC。对log系统而言,当输入源可能不止一个,而只有一个输出时,往往需要分辩所...

Android 自定义View基础(四)--ListView_安卓 listview 自定义view_Kenway090704的博客-程序员秘密

这篇文章主要是总结ListView的使用:首先来说说ListView,几乎所有的app都在使用listview,所以熟练使用ListView是作为Android移动开发必不可少的。AdapterViewHoldersetEnpty()自动隐藏,显示的ListView聊天界面的ListViewAdapter对于ListView而言,Adapter就是“弹夹”,給ListView添加数据和视

C语言字符界面,输入一串字符时可以随时按Esc键退出的工具函数_从键盘输入一串字符,以esc作为结束符_远筝的博客-程序员秘密

/* * 函数功能: 输入一串字符时,可以随时按Esc键退出 * 函数原型: int input_string(char *buf) * 参数: buf: 字符类型指针,屏幕输入的字符的存放地 * 返回值: 1:从屏幕输入的字符串存放成功 * 0:从屏幕输入的字符串存放失败 */int input_string(char *buf){ int i = 0...

推荐文章

热门文章

相关标签