在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))
        结果如图:
        在python中执行shell命令

在python中执行shell命令

在python中执行shell命令

同样的也会出现一个‘passwd.html’ 文件,点击浏览器图标就会打开,会出现这样的内容
在python中执行shell命令
改变的内容会用黄色标注起来。

3.paramiko远程密码连接
在python中执行shell命令
这里我连接的是172.25.254.31这台主机,执行的命令是 hostname
返回如下

在python中执行shell命令

4.paramiko批量远程密码连接
在python中执行shell命令
在python中执行shell命令

返回如下
在python中执行shell命令
第一个连接失败是因为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.基于用户名密码的上传与下载
在python中执行shell命令

注意:连接的是目标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文件中。

在python中执行shell命令
那么在date.txt 文件中就会显示此刻的时间
2018 09 13

在python中执行shell命令
同时这里有时间转换 ,第一行是以秒为单位的

在python中执行shell命令

7.datetime模块详解

在python中执行shell命令
返回

在python中执行shell命令

8.应用案例—系统监控

在python中执行shell命令

在python中执行shell命令

在python中执行shell命令

在python中执行shell命令

9.namedtupled新型数据类型

在python中执行shell命令

在python中执行shell命令

10._json模块
first
在python中执行shell命令

在python中执行shell命令

second
在python中执行shell命令

在python中执行shell命令
这是json.txt文件内容

11.获取IP对应的地理位置
在python中执行shell命令

在python中执行shell命令