​Python学习教程_Python学习路线:python—收集系统信息

Python学习教程(Python学习路线):python—收集系统信息

成都创新互联是一家集网站建设,海原企业网站建设,海原品牌网站建设,网站定制,海原网站建设报价,网络营销,网络优化,海原网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

1.1 hashlib模块使用

获取文件的MD5值,和shell下的MD5sum一样

方法一:先实例化一个对象,再使用update做校验,最后十六进制查看hexdigest

In [3]: import hashlib

In [5]: md5 = hashlib.md5

In [6]: md5.update("a")

In [7]: md5.hexdigest

Out[7]: '0cc175b9c0f1b6a831c399e269772661'

In [8]: md5.update("b\n") #叠加,实际为ab\n的值

In [9]: md5.hexdigest

Out[9]: 'daa8075d6ac5ff8d0c6d4650adb4ef29'

说明:

对比shell,哈希值一样

[root@huangzp3 python]# echo "ab"|md5sum

daa8075d6ac5ff8d0c6d4650adb4ef29 -

与shell下一致,-n #表示不加换行符

[root@huangzp3 python]# echo "a"|md5sum

60b725f10c9c85c70d97880dfe8191b3 -

[root@huangzp3 python]# echo -n "a"|md5sum

0cc175b9c0f1b6a831c399e269772661 -

方法二:字符串短时,直接调用

In [10]: hashlib.md5("hello").hexdigest

Out[10]: '5d41402abc4b2a76b9719d911017c592'

脚本:

运行结果:

[root@huangzp3 python]# python 01.py 1.py

e796a8f418fa90d7e4f0a162119f114a

[root@huangzp3 python]# cat 1.py |md5sum

e796a8f418fa90d7e4f0a162119f114a -

1.2 os.walk模块使用

os.walk:迭代目录里文件,返回一个列表,分别是:路径、路径下的目录、路径下的文件

In [17]: walk = os.walk("/root/python/a")

In [18]: for i,j,k in walk:print i,j,k

/root/python/a ['b'] ['a.txt']

/root/python/a/b ['c'] ['b.txt']

/root/python/a/b/c ['c.txt']

脚本:

运行结果:

[root@huangzp3 python]# python 02.py /root/python/

b9f6f7a02766b3f9bd28369c6c331218 /root/python/20.py

e796a8f418fa90d7e4f0a162119f114a /root/python/1.py

01b1b4f4b2eb7155187c27057e9a4de2 /root/python/1.pyc

1.3 生成器yield

想捕获函数的值,但是又不想退出程序。yield,记住当前函数的值,用于下次调用。调用时用next方法或者for循环遍历

修改如上脚本:

1.4 文件md5值的校验

找出目录中内容相同的文件

脚本:

运行结果:

[root@huangzp3 python]# python 04.py /root/python

b026324c6904b2a9cb4b88d6d61c81d1 ['./test/a/1.txt', './test/b/2.txt', './test.bak/test/a/1.txt', './test.bak/test/b/2.txt']

1.5 字典排序

字典是无序的

sorted(可迭代对象,cmp,key=根据什么排序,reverse=是否倒序),返回一个排序的列表

说明:key表示关键字;operator.itemgetter(0):根据字典的key值排序,(1)表示根据字典的value排序;reverse=True倒序

x.iteritems返回一个序列,items与iteritems的区别和range与xrange的区别一样

找出占用空间大的文件

脚本:

运行结果:

[root@huangzp3 python]# python 05.py /data/program/

/data/program/mongo/data/data27018/local.2 ------> 511M

/data/program/mongo/data/data27018/local.1 ------> 511M

/data/program/mongo/data/data27017/local.1 ------> 511M

/data/program/mongo/data/data27017/local.2 ------> 511M

/data/program/mongo/logs/MongoDB-27018.log ------> 488M

/data/program/MySQL/lib/libmysqld.a ------> 235M

/data/program/mongo/data/data27018/journal/j._7 ------> 128M

/data/program/mysql/bin/mysqld ------> 95M

/data/program/mysql/bin/mysql_client_test_embedded ------> 87M

/data/program/mysql/bin/mysql_embedded ------> 87M

1.6 python调用外部命令

1)os.system:输出在终端上,捕获不到

In [4]: os.system("ls")

001.sh 10.sh 1.py

2)os.popen:只能捕捉到标准输出,捕捉不到标准错误输出

In [12]: a = os.popen("ls")

In [13]: a.read

a.read a.readline

a.readinto a.readlines

3)os.popen2:返回2个对象,一个标准输入、一个标准输出

In [14]: sdtin,stdout = os.popen2("sort")

/usr/bin/ipython:1: DeprecationWarning: os.popen2 is deprecated. Use the subprocess module.

#!/usr/bin/python2

4)os.popen3:返回3个对象,标准输入、标准输出、标准错误输出

In [16]: stdin,stdout,stderr = os.popen3("ls a")

/usr/bin/ipython:1: DeprecationWarning: os.popen3 is deprecated. Use the subprocess module.

#!/usr/bin/python2

5)os.popen4:返回2个对象,pipe_in和pipe_out_err

6)subprosess

subpeocess. call ('ls -l --color /root',shell=True)

说明:输出不能捕捉到,类似于os.system;不加-l,就不用shell

subprocess. check_call (['mkdir','/tmp/aaa'])

说明:会抛出python异常

In [19]: subprocess.call("ls -l",shell=True)

total 580868

-rw-r--r-- 1 root root 103 Nov 22 16:23 001.sh

-rw-r--r-- 1 root root 375 Nov 1 03:00 100.sh

-rw-r--r-- 1 root root 47624178 Nov 1 19:35 100.txt

捕捉异常

脚本:

运行结果:

[root@huangzp3 python]# python 06.py

hello world

网页题目:​Python学习教程_Python学习路线:python—收集系统信息
URL链接:https://www.cdcxhl.com/article8/ipioip.html

成都网站建设公司_创新互联,为您提供网站设计公司网站建设品牌网站设计企业网站制作网站改版手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管