python 执行linux命令?
2023-06-10
Python 可以通过 subprocess 模块调用 Linux 命令。下面是几个例子:
1.执行一个简单的命令,例如 ls 命令,可以使用 subprocess.run() 方法:
import subprocess
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode())
2.执行一个需要输入的命令,例如 sudo 命令,可以使用 subprocess.Popen() 方法:
import subprocesssudo_password = 'mypassword'
command = 'sudo ls -l'
# 构建一个 Popen 对象来执行进程
p = subprocess.Popen(['sudo', '-S'] + command.split(), stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
# 向进程输入密码
sudo_prompt = p.communicate(sudo_password + '\n')[1]
# 输出进程的结果
print(sudo_prompt)
在python中调用linux时常见的错误包括:
找不到命令或文件:如果您在执行命令时遇到此错误,那么您需要检查命令的路径和文件名是否正确,并且确保您有执行该命令的权限。
权限不足:如果您在执行命令时遇到此错误,那么您需要确保您有执行该命令的权限,并且您的 Python 程序以足够的权限运行。
输出重定向错误:如果您在执行命令时将输出重定向到文件或者管道中,那么您需要确保输出文件或管道已经正确创建,并且您有足够的权限写入数据。
为了避免出现错误,建议在编写 Python 程序时,对命令进行封装,以确保其安全性、可靠性和可维护性。