?Python學(xué)習(xí)教程_Python學(xué)習(xí)路線:python—收集系統(tǒng)信息

Python學(xué)習(xí)教程(Python學(xué)習(xí)路線):python—收集系統(tǒng)信息

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),海原企業(yè)網(wǎng)站建設(shè),海原品牌網(wǎng)站建設(shè),網(wǎng)站定制,海原網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,海原網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

1.1 hashlib模塊使用

獲取文件的MD5值,和shell下的MD5sum一樣

方法一:先實(shí)例化一個(gè)對(duì)象,再使用update做校驗(yàn),最后十六進(jìn)制查看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") #疊加,實(shí)際為ab\n的值

In [9]: md5.hexdigest

Out[9]: 'daa8075d6ac5ff8d0c6d4650adb4ef29'

說(shuō)明:

對(duì)比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 -

方法二:字符串短時(shí),直接調(diào)用

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

Out[10]: '5d41402abc4b2a76b9719d911017c592'

腳本:

運(yùn)行結(jié)果:

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

e796a8f418fa90d7e4f0a162119f114a

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

e796a8f418fa90d7e4f0a162119f114a -

1.2 os.walk模塊使用

os.walk:迭代目錄里文件,返回一個(gè)列表,分別是:路徑、路徑下的目錄、路徑下的文件

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']

腳本:

運(yùn)行結(jié)果:

[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

想捕獲函數(shù)的值,但是又不想退出程序。yield,記住當(dāng)前函數(shù)的值,用于下次調(diào)用。調(diào)用時(shí)用next方法或者for循環(huán)遍歷

修改如上腳本:

1.4 文件md5值的校驗(yàn)

找出目錄中內(nèi)容相同的文件

腳本:

運(yùn)行結(jié)果:

[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 字典排序

字典是無(wú)序的

sorted(可迭代對(duì)象,cmp,key=根據(jù)什么排序,reverse=是否倒序),返回一個(gè)排序的列表

說(shuō)明:key表示關(guān)鍵字;operator.itemgetter(0):根據(jù)字典的key值排序,(1)表示根據(jù)字典的value排序;reverse=True倒序

x.iteritems返回一個(gè)序列,items與iteritems的區(qū)別和range與xrange的區(qū)別一樣

找出占用空間大的文件

腳本:

運(yùn)行結(jié)果:

[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調(diào)用外部命令

1)os.system:輸出在終端上,捕獲不到

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

001.sh 10.sh 1.py

2)os.popen:只能捕捉到標(biāo)準(zhǔn)輸出,捕捉不到標(biāo)準(zhǔn)錯(cuò)誤輸出

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

In [13]: a.read

a.read a.readline

a.readinto a.readlines

3)os.popen2:返回2個(gè)對(duì)象,一個(gè)標(biāo)準(zhǔn)輸入、一個(gè)標(biāo)準(zhǔn)輸出

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個(gè)對(duì)象,標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤輸出

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個(gè)對(duì)象,pipe_in和pipe_out_err

6)subprosess

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

說(shuō)明:輸出不能捕捉到,類(lèi)似于os.system;不加-l,就不用shell

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

說(shuō)明:會(huì)拋出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

捕捉異常

腳本:

運(yùn)行結(jié)果:

[root@huangzp3 python]# python 06.py

hello world

網(wǎng)頁(yè)題目:?Python學(xué)習(xí)教程_Python學(xué)習(xí)路線:python—收集系統(tǒng)信息
URL鏈接:http://muchs.cn/article8/ipioip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、網(wǎng)站改版、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管