python连接linux,python调用shell
本篇文章给大家谈谈python连接linux,以及python调用shell对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
python 执行linux命令
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 subprocess
sudo_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程序时,对命令进行封装,以确保其安全性、可靠性和可维护性。
在Linux里面,创建一个python文件
打开终端,进入要创建Python文件的目录。
创建一个Python文件,例如hello.py,使用vi编辑器:
vi hello.py
在vi编辑器中按下 i进入编辑模式,输入以下代码:
#!/usr/bin/env python3
print("hello world")
这里使用了shebang(#!/usr/bin/env python3)来指定使用Python 3来执行该文件。
按下ESC键,输入:wq保存并退出vi编辑器。
在终端中使用chmod命令修改该文件的权限,使其可执行:
chmod+x hello.py
执行该文件:
python3 hello.py
执行后,终端会输出"hello world"。
python3终端交互执行Linux命令
实现Python终端交互执行Linux命令,结合Python库paramiko,完成远程Linux主机操作。初始化Linux类,输入IP、用户名、密码与超时时间,调用connect方法建立连接,返回成功连接信息与接收数据。若连接失败,重试三次后退出程序。连接成功后,利用send方法执行命令,接收并返回命令执行结果,循环获取大命令执行过程中的回显。
定义upload_file方法实现文件上传,参数包括上传文件路径和目标路径,通过SFTPClient完成文件传输。正常连接情况下,实例化Linux对象并调用connect方法连接主机。发送查看文件的命令示例,并定义输入命令函数,循环接收输入命令,执行发送并处理输出结果,去除最后的换行符,显示完整结果。实现用户与远程Linux系统的交互,简化了复杂的SSH操作,提供高效且直观的远程命令执行与文件管理功能。