如何在Python中执行外部命令

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中执行外部命令

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a656b290e1eba9a3267a04be679605f6.html