在python中执行shell命令

1.difflib模块
import difflib

file1 = ‘/etc/passwd’
file2 = ‘/tmp/passwd’

with open(file1) as f1, open(file2) as f2:
text1 = f1.readlines( )
text2 = f2.readlines( )

d = difflib.HtmlDiff( )
with open(“passwd.html”, ‘w’) as f:
f.write(d.make_file(text1,text2))
执行完该程序就会生成一个名为‘ passwd.html ‘文件,我们打开文件并点击浏览器图标,就会在浏览器中显示/etc/passwd 和 /tmp/passwd 的文件内容。

2._diff里面的案例
import difflib

text1 = ”’
1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
”’.splitlines(keepends=True)

text2 = ”’
1. Beautifu is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
”’.splitlines(keepends=True)

  1. 以字符串方式展示两个文本的不同, 效果如下:
    d = difflib.Differ( )
    result = list(d.compare(text1, text2))
    result = ” “.join(result)
    print(result)
    “”“

      1. Beautiful is better than ugly.
        ? ^
      1. Beautifu is better than ugly.
        ? ^
      2. Explicit is better than implicit.
      3. Simple is better than complex.
      4. Complex is better than complicated.
        “”“

      5. 以html方式展示两个文本的不同, 浏览器打开:
        d = difflib.HtmlDiff( )
        with open(“passwd.html”, ‘w’) as f:
        f.write(d.make_file(text1, text2))
        结果如图:
        这里写图片描述

这里写图片描述

这里写图片描述

同样的也会出现一个‘passwd.html’ 文件,点击浏览器图标就会打开,会出现这样的内容
这里写图片描述
改变的内容会用黄色标注起来。

3.paramiko远程密码连接
这里写图片描述
这里我连接的是172.25.254.31这台主机,执行的命令是 hostname
返回如下

这里写图片描述

4.paramiko批量远程密码连接
这里写图片描述
这里写图片描述

返回如下
这里写图片描述
第一个连接失败是因为ip不存在
第二个连接成功
第三个连接失败是因为密码不正确
第四个与第一个相同
这里的 host.txt 文件的内容由自己写,此处写的是:
172.25.254.1 : 22 : 22 : westos
172.25.254.31 : 22 : root : westos
172.25.254.31 : 22 : kiosk : redhat
172.25.254.25 : 22 : kiosk : redhat1

5.基于用户名密码的上传与下载
这里写图片描述

注意:连接的是目标IP地址
put 是把本地文件上传到目标IP地址处,所以本地要有/tmp/kiosk文件
get 则相反 是把目标文件/mnt/kiosk1 下载到本地的/root/Desktop/4 里

6.os模块补充
time模块--时间获取和转换
time模块提供各种时间相关的功能
与时间相关的模块有:time,datetime,calendar
这个模块中定义的大部分函数是调用C平台上的同名函数实现

1.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)
2.UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是世界标准时间.在我国为UTC+8
3.DST(Daylight Saving Time)即夏令时
4.时间元组(time.struct_time对象, time.localtime方法)
5.字符串时间(time.ctime)

利用time.time( )方法,我们可以计算两个时间点之间的间隔,
但是有些时候我们想要得到/etc/group文件的最后一次修改时间,
对应的年月日这些信息,并保存在文件date.txt文件中。

这里写图片描述
那么在date.txt 文件中就会显示此刻的时间
2018 09 13

这里写图片描述
同时这里有时间转换 ,第一行是以秒为单位的

这里写图片描述

7.datetime模块详解

这里写图片描述
返回

这里写图片描述

8.应用案例—系统监控

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

9.namedtupled新型数据类型

这里写图片描述

这里写图片描述

10._json模块
first
这里写图片描述

这里写图片描述

second
这里写图片描述

这里写图片描述
这是json.txt文件内容

11.获取IP对应的地理位置
这里写图片描述

这里写图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值