返回顶部
首页 > 资讯 > 后端开发 > Python >Python执行外部命令的方法有哪些
  • 916
分享到

Python执行外部命令的方法有哪些

2023-06-16 01:06:59 916人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python执行外部命令的方法有哪些”,在日常操作中,相信很多人在Python执行外部命令的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python执行外部命令的方法有哪些”的疑

这篇文章主要介绍“python执行外部命令的方法有哪些”,在日常操作中,相信很多人在Python执行外部命令的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python执行外部命令的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.  system函数

基本的调用格式如下:

import os os.system("some_command with args");

system函数会将命令和参数传递给系统的shell。这么做非常好,因为您实际上可以用这种方式一次运行多个命令,并设置管道和输入/输出重定向。例如:

import os os.system("cat command.py | grep -n subprocess > result.txt")

执行这段代码,会在当前目录生成一个result.txt文件。

尽管这样做很方便,但必须手动处理转义字符(例如空格等)。所以这样做只是让你简单地运行Shell程序,而不是扩展程序的功能。

2.  popen函数

基本调用格式如下:

import os stream = os.popen("some_command with args")

popen函数与os.system函数的功能相同,只是popen函数提供了一个用于操作文件的对象,可用使用标准输入输出的方式来访问文件中的数据。popen函数还有其他3种变体,它们对I/O的处理略有不同。如果将所有内容都作为字符串传递,那么命令将传递到Shell程序;如果将它们作为列表传递,则无需担心转义任何内容。例如:

import os stream = os.popen("cat command.py | grep -n subprocess") print(type(stream)) result = stream.readlines() print(type(result)) print(result)

执行这段代码,会输出如下内容:

<class 'os._wrap_close'> <class 'list'> ['1:import subprocess\n', '2:subprocess.run(["ls", "-l"])\n', '5:subprocess.call(["ls", "-l"])\n', '8:os.system("cat command.py | grep -n subprocess > result.txt")\n']

我们可以看到,readlines方法以列表形式返回命令的执行结果。

3.  Popen类

subprocess模块的Popen类。该类可用于替换os.popen函数。但Popen类的缺点是由于功能过于强大,所以使用起来稍微复杂一些。例如:

print(subprocess.Popen("echo Hello World", shell=True, stdout=subprocess.PIPE).stdout.read())

这行代码可以用来替换下面的代码:

print(os.popen("echo Hello World").read())

关于Popen类的一个更复杂的例子如下:

import subprocess p = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for line in p.stdout.readlines():     print(line.decode("utf-8").strip()) retval = p.wait()

这段代码通过标准输出的readlines方法读取了ls命令返回结果的所有行,并将这些内容输出到Console。最后用wait方法等待ls命令执行完,最后结束程序。

Popen类相对于popen函数的优势是将所有的选项都统一放在了Popen类中,而不是需要4个不同的popen函数完成这些工作。

4.call函数

来自subprocess模块的call函数。与Popen类一样,拥有相同的参数,但call函数只会等待命令执行完并提供返回代码才结束。例如:

return_code = subprocess.call("echo Hello World", shell=True) print(return_code)

5. run函数

如果读者使用的是Python  3.5或更高版本,则可以使用新的subprocess.run函数,该函数与上面的代码非常相似,但是更加灵活,并在命令完成执行后返回CompletedProcess对象。例如:

import subprocess result = subprocess.run(["ls", "-l"]) print(type(result))

6. 类C函数

os模块还提供了与C语言类似的fork / exec / spawn函数,但是我不建议直接使用它们,例如:

import os print(os.execl('/bin/ls', ' '))

最后,请注意,对于这些执行外部命令的方法,需要将这些命令执行后参数的字符串传递回程序,有时需要对这些传回的字符串进行转移。如果你无法完全信任这些字符串,那么有可能会带来严重的安全隐患。例如,如果用户正在输入字符串的某些/任何部分。如果不确定,请仅将这些方法与常量一起使用。为了更好地说明这一点,请看下面的代码。

print(subprocess.Popen("echo %s " % user_input, stdout=PIPE).stdout.read())

我们可以想象,当用户输入了“I love your harddisk && rm -rf  /”,这将删除硬盘中的所有数据。所以如果你对用户的输入无法完全信任的话,请将变量user_input改成常量,不让用户任意输入。

到此,关于“Python执行外部命令的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Python执行外部命令的方法有哪些

本文链接: https://lsjlt.com/news/281968.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python执行外部命令的方法有哪些
    这篇文章主要介绍“Python执行外部命令的方法有哪些”,在日常操作中,相信很多人在Python执行外部命令的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python执行外部命令的方法有哪些”的疑...
    99+
    2023-06-16
  • python 执行外部命令
     在Python环境下,执行一条外部命令一般有这么几个: 1、os.system(command)或者os.popen(..........) 2、wx.Execute(command, syn=wx.EXEC_ASYNC, callbac...
    99+
    2023-01-31
    命令 python
  • python 外部命令执行--OS
     Python 也可以通过os、subprocess执行外部shell命令对POSIX类型系统进行操作。  os 一个很强大的命令,可以通过os下的一些方法去执行shell命令,并且可以对对象执行完的标准输出、标准输入和标准错误输出进行操...
    99+
    2023-01-31
    命令 python OS
  • Python 执行Shell 外部命令
    1、os.system()此方法执行的外部程序,会将结果直接输出到标准输出。os.system的返回结果为执行shell 的 $ 值。因此请执行没有输出结果的程序时适合使用此方法。如touch 、rm 一个文件等。In [1]: impor...
    99+
    2023-01-31
    命令 Python Shell
  • Shell.Application执行命令的方法有哪些
    这篇文章将为大家详细讲解有关Shell.Application执行命令的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:Set objShellApp = ...
    99+
    2023-06-08
  • Python实现subprocess执行外部命令
    目录一、Python执行外部命令1、subprocess模块简介2、subprocess模块的遍历函数3、subprocess模块的Popen类(PyCharm)4、使用python自动安i装并启动mongodb一、...
    99+
    2022-06-03
    Python 执行外部命令
  • 命令执行漏洞的修复方法有哪些
    命令执行漏洞的修复方法有以下几种严格过滤用户输入的数据,禁止执行系统命令。使用动态函数之前,确保使用的函数是指定函数。在执行命令函数,对参数进行过滤,并对敏感字符进行转义。使用函数替换命令执行,并且参数值尽量使用引号包括。...
    99+
    2024-04-02
  • Python执行外部命令subprocess的使用详解
    目录一、了解subprocess1、subprocess.run()方法2、Popen类二、补充os模块执行外部命令1、os.system()方法2、os.popen()用法一、了解subprocess s...
    99+
    2022-06-02
    Python执行外部命令 Python subprocess
  • python执行shell命令的方法
    os模块os.system方式:import os os.system('top') os.system('cat /proc/cpuinfo')说明这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值是依赖于系统的,直接返回系...
    99+
    2023-01-31
    命令 方法 python
  • 批处理bat延时执行命令的方法有哪些
    这篇文章主要介绍“批处理bat延时执行命令的方法有哪些”,在日常操作中,相信很多人在批处理bat延时执行命令的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”批处理bat延时执行命令的方法有哪些”的疑...
    99+
    2023-06-09
  • python中命令行传参方法有哪些
    小编给大家分享一下python中命令行传参方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!argparse1import argparseimport sysFLAGS = ...
    99+
    2023-06-15
  • python执行系统命令的方法
        做为系统工程师来说,经常会用到python脚本去调用一下系统命令,现把经常使用的集中调用方法总结如下:一,os.system(command)在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。...
    99+
    2023-01-31
    命令 方法 系统
  • php命令执行函数有哪些
    php中的命令执行函数有System、Exec和Passthru几种System函数System函数作用:php中System函数的作用是用于执行command参数所指定的命令,且打印全部的输出值。System函数语法:system ( s...
    99+
    2024-04-02
  • 有哪些ssh远程执行命令方法和Shell脚本
    本篇内容主要讲解“有哪些ssh远程执行命令方法和Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些ssh远程执行命令方法和Shell脚本”吧!ssh执行远程操作命令格式代码如下:...
    99+
    2023-06-09
  • MySQL执行外部sql脚本文件的命令
    目录1.创建包含sql命令的sql脚本文件2.执行sql脚本文件(介绍三种方式)sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为...
    99+
    2024-04-02
  • Linux下命令执行效果有哪些
    这篇文章将为大家详细讲解有关Linux下命令执行效果有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。screenfetch:显示系统、主题信息安装使用:sudo apt insta...
    99+
    2023-06-16
  • node.js命令行使用的方法有哪些
    在Node.js命令行中,可以使用以下方法:1. 执行JavaScript文件:使用`node`命令后跟要执行的JavaScript...
    99+
    2023-08-16
    node.js
  • Golang执行cmd命令行的方法
    1. Golang执行系统命令使用 os/exec Command方法: func Command(name string, arg ...string) *Cmd 第一个参数是命...
    99+
    2024-04-02
  • Windows中有哪些运行Linux命令的方法
    这篇文章给大家介绍Windows中有哪些运行Linux命令的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、在 Windows 10 上使用 Linux Bash Shell你是否知道可以在 Windows 10...
    99+
    2023-06-16
  • Python执行js字符串的方法有哪些
    这篇文章主要讲解了“Python执行js字符串的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python执行js字符串的方法有哪些”吧!方法执行大型js时有点慢特殊编码的输入或输...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作