手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

如何在Python中执行外部命令

[日期:2020-03-30] 来源:Linux公社  作者:醉落红尘 [字体: ]

Python子进程模块允许生成新进程,从Python脚本执行外部命令。 您可以使用这些教程来安装最新版本的Python。 此外,还有许多可用于Python IDE。 就像在Ubuntu系统上安装PyCharm Python IDE。

一个简单的Python示例

让我们创建第一个程序以列出当前目录中的所有可用文件。 您可以添加任意数量的以逗号(,)分隔的命令行参数。

#!/usr/bin/python3
import subprocess
subprocess.call(["ls", "-l"])

如何在Python中执行外部命令

import语句用于从Python标准库加载子流程模块

call是子流程模块的功能,用于执行外部命令

没有换行的Python打印

Python命令以新行输出“ \n”终止,您可以使用 end=”” 覆盖新行输出,这意味着下一个命令输出将在同一行上。 请参见以下示例。

#!/usr/bin/python3
 
import subprocess
 
print("\nToday is ", end="")
subprocess.call(["date","+%D"])

如何在Python中执行外部命令

具有Shell扩展功能的Python示例

默认的subprocess.call不使用shell扩展通配符或执行命令替换。 可以通过为shell参数传递True值来覆盖此设置。请记住,使用shell=True可能会因为执行有害的命令而造成系统的安全问题。

#!/usr/bin/python3
 
import subprocess
 
# 在不使用shell扩展的情况下执行命令
subprocess.call(['echo', 'Welcome $USER'])
 
# 使用Shell扩展执行命令
subprocess.call('echo Welcome $USER', shell=True)

如何在Python中执行外部命令

您可以在上面的输出中看到,第一个命令打印了一个变量名,因为它是在没有shell扩展的情况下执行的。 使用shell扩展执行的第二条命令获取USER环境变量的值。 另外,您可以看到整个命令现在作为字符串而不是作为字符串列表传递。

其他有用的Python示例

通过将长命令存储在变量中然后执行它,可以使脚本的可读性和美观性更高。

#!/usr/bin/python3
 
import subprocess
 
cmd = "grep -Re 'Fatal' /var/log/ > linuxidc.txt"
subprocess.call(cmd, shell=True)

如何在Python中执行外部命令

您还可以使用subprocess.getoutput将任何命令的输出存储到变量中。 如果生成任何错误消息,它也将存储。

#!/usr/bin/python3
 
import subprocess
 
print("The output of 'pwd' command is:", flush=True)
 
output = subprocess.getoutput('pwd')
print(output)

如何在Python中执行外部命令

更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2020-03/162746.htm

linux
相关资讯       Python执行外部命令 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款