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操作,提供高效且直观的远程命令执行与文件管理功能。

阅读剩余
THE END