py14 各類經常使用模塊合集

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319347182373b696e637cc04430b8ee2d548ca1b36d000html

 

sys和os模塊python

http://www.runoob.com/python3/python3-os-file-methods.html緩存

http://book.luffycity.com/python-book/di-4-zhang-python-ji-chu-2014-chang-yong-mo-kuai/os-mo-kuai.html函數

Python中 sys.argv[]的用法簡明解釋學習

      由於是看書自學的python,開始後不久就遇到了這個引入的模塊函數,且一直在IDLE上編輯了後運行,試圖從結果發現它的用途,然而結果一直都是沒結果,也在網上查了許多,但發現這個問題的比較詳細的解釋只有一個版本,大部分都是轉裁和複製的。給的都是簡明python教程上那個一長串代碼的例子,說看了就明白了,可我看得暈頭轉向的仍是沒真正明白,只知道「sys.argv[0]表示代碼自己文件路徑」這點,其實仍是不明其意。後來通過大量努力,多方求教才真正明悟了,謹以記錄和分享,但願能從另外一個角度給同在求索過程當中的同窗一點啓發。編碼

  sys.argv[]說白了就是一個從程序外部獲取參數的橋樑,這個「外部」很關鍵,因此那些試圖從代碼來講明它做用的解釋一直沒看明白。由於咱們從外部取得的參數能夠是多個,因此得到的是一個列表(list),也就是說sys.argv其實能夠看做是一個列表,因此才能用[]提取其中的元素。其第一個元素是程序自己,隨後才依次是外部給予的參數。spa

下面咱們經過一個極簡單的test.py程序的運行結果來講明它的用法。.net

1 #test.py
2 
3 import sys
4 a=sys.argv[0]
5 print(a)

將test.py保存在c盤的根目錄下。設計

在程序中找到 ‘運行’->點擊->輸入"cmd"->回車鍵   進入控制檯命令窗口(以下圖),先輸入cd c:\   (做用是將命令路徑改到c盤根目錄),而後輸入test.py運行咱們剛剛寫的程序:code

 

獲得的結果是C:\test.py,這就是0指代碼(即此.py程序)自己的意思。

而後咱們將代碼中0改成1 :

a=sys.argv[1]

保存後,再從控制檯窗口運行,此次咱們加上一個參數,輸入:test.py what

 

 獲得的結果就是咱們輸入的參數what,看到這裏你是否是開始明白了呢。

那咱們再把代碼修改一下:

a=sys.argv[2:]

保存後,再從控制檯窗臺運行程序,此次多加幾個參數,以空格隔開:

test.py a b c d e f

 

獲得的結果爲[‘b’, ’c’, ’d’, ’e’, ’f’]

 

應該大徹大悟了吧。Sys.argv[ ]其實就是一個列表,裏邊的項爲用戶輸入的參數,關鍵就是要明白這參數是從程序外部輸入的,而非代碼自己的什麼地方,要想看到它的效果就應該將程序保存了,從外部來運行程序並給出參數。

 

 

 

 

watchdog模塊,對文件建立刪除等操做進行監控

stringIO和bytesIO

上下文管理器https://blog.csdn.net/hbnn111/article/details/78029011

http://python.jobbole.com/82289/

https://www.cnblogs.com/vamei/archive/2012/11/23/2772445.html

hmac和hashlib

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0015108777177966ef0f4f8510a41b3b8c48cdcf7047b2d000

StringIO常常被用來做爲字符串的緩存,應爲StringIO有個好處,他的有些接口和文件操做是一致的,也就是說用一樣的代碼,能夠同時當成文件操做或者StringIO操做。

 

Python學習筆記之optparse模塊OptionParser

optparse,是一個更夠讓程序設計人員輕鬆設計出簡單明瞭、易於使用、符合標準的Unix命令例程式的Python模塊。生成使用和幫助信息

1、例子

import StringIO
 
s = StringIO.StringIO()
s.write('www.baidu.com\r\n')
s.write('news.realsil.com.cn')
s.seek(0)
print '*' * 20
print s.tell()
print s.read()
 
print '*' * 20
print s.tell()
print s.read()
 
print '*' * 20
print s.tell()
print s.getvalue()
 
print '*' * 20
print s.tell()
s.seek(-4,2)
print s.read()

運行結果:

********************
0
www.baidu.com
news.realsil.com.cn
********************
34

********************
34
www.baidu.com
news.realsil.com.cn
********************
34
m.cn

2、StringIO類中的方法:

  1. read
  2. readline
  3. readlines
  4. write
  5. writeline
  6. getvalue
  7. truncate
  8. tell
  9. seek
  10. close
  11. isatty
  12. flush

----------------------

s.read([n])

參數n限定讀取長度,int類型;缺省狀態爲從當前讀寫位置讀取對象s中存儲的全部數據。讀取結束後,讀寫位置被移動。

----------------------

s.readline([length])

參數length限定讀取的結束位置,int類型,缺省狀態爲None:從當前讀寫位置讀取至下一個以「\n」爲結束符的當前行。讀寫位置被移動。

----------------------

s.readlines([sizehint])

參數sizehint爲int類型,缺省狀態爲讀取全部行並做爲列表返回,除此以外從當前讀寫位置讀取至下一個以「\n」爲結束符的當前行。讀寫位置被移動。

----------------------

s.write(s)

從讀寫位置將參數s寫入給對象s。參數s爲str或unicode類型。讀寫位置被移動。

----------------------

s.writelines(list)

從讀寫位置將list寫入給對象s。參數list爲一個列表,列表的成員爲str或unicode類型。讀寫位置被移動。

----------------------

s.getvalue()

此函數沒有參數,返回對象s中的全部數據。

----------------------

s.truncate([size])

從讀寫位置起切斷數據,參數size限定裁剪長度,缺省值爲None。

----------------------

s.tell()

返回當前讀寫位置。

----------------------

s.seek(pos[,mode])

移動當前讀寫位置至pos處,可選參數mode爲0時將讀寫位置移動至pos處,爲1時將讀寫位置從當前位置起向後移動pos個長度,爲2時將讀寫位置置於末尾處再向後移動pos個長度;默認爲0。

----------------------

s.close()

釋放緩衝區,執行此函數後,數據將被釋放,也不可再進行操做。

----------------------

s.isatty()

此函數老是返回0。不論StringIO對象是否已被close()。

----------------------

s.flush()

刷新內部緩衝區。

----------------------

 

BytesIO

StringIO操做的只能是str,若是要操做二進制數據,就須要使用BytesIO。

BytesIO實現了在內存中讀寫bytes,咱們建立一個BytesIO,而後寫入一些bytes:

>>> from io import BytesIO >>> f = BytesIO() >>> f.write('中文'.encode('utf-8')) 6 >>> print(f.getvalue()) b'\xe4\xb8\xad\xe6\x96\x87' 

請注意,寫入的不是str,而是通過UTF-8編碼的bytes。

和StringIO相似,能夠用一個bytes初始化BytesIO,而後,像讀文件同樣讀取:

>>> from io import BytesIO >>> f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87') >>> f.read() b'\xe4\xb8\xad\xe6\x96\x87'
相關文章
相關標籤/搜索