目錄html
在命令行輸入如下,檢查模塊是否存在python
python -c "import 模塊名"
表示沒有相應的模塊。
對於自定義模塊,能夠採用首字母大寫來避免與標準庫重複。算法
Graphics/ __init__.py Bmp.py Jpeg.py Png.py Tiff.py Xpm.py
上面目錄包含了_init_.py文件,使其成了一個包。只要包目錄是程序目錄的子目錄,或者存在於Python路徑中,就能夠導入這些模塊。django
import Graphics.Bmp
若咱們編輯_init_.py爲:json
#__init__.py __all__ = ['Bmp', 'Jpeg', 'Png', 'Tiff', 'Xpm']
那麼,就能夠使用下面的命令:cookie
from Graphics import *
多層嵌套也能夠的。網絡
#testdoc.py def simpledoc(real, dream='sky'): """ Returns the text I can not control now... real is any string; dream is the same as well, while it has default value 'sky'. Of course, your different people has various dreams, but we all need to confront the real life. >>> simpledoc('god') 'haha happy' >>> simpledoc('god', 'earth') "don't cry, go forward..." """ if real == 'god' and dream == 'sky': return "haha happy" else: return "don't cry, go forward..." if __name__ == "__main__": import doctest doctest.testmod()
在命令行內輸入(路徑啥的得弄好)app
python testdoc.py -v
獲得:dom
Trying: simpledoc('god') Expecting: 'haha happy' ok Trying: simpledoc('god', 'earth') Expecting: "don't cry, go forward..." ok 1 items had no tests: __main__ 1 items passed all tests: 2 tests in __main__.simpledoc 2 tests in 2 items. 2 passed and 0 failed. Test passed.
struct模塊提供了struct.pack(), struct.unpack()以及其餘一些函數,還提供了struct.Struct()類。struct.pack()函數以一個struct格式化字符串以及一個或多個值爲參數,並返回一個bytes對象,其中存放的是按照改格式規範表示的全部這些參數值。socket
data = struct.pack("<2h", 11, -9) # data == b'\x0b\x00\xf7\xff' items = struct.unpack("<2h", data) # items == (11,-9) TWO_SHORTS = struct.Struct("<2h") data = TWO_SHORTS.pack(11, -9) items = TWO_SHORTS.unpack(data) # (data, items)
格式是"<2h",表示,將倆個有符號的16位整數以小端的方法打包在一塊兒,其中:
"\x0b\x00" 表示11,事實上,11的16進製表示爲"0x000b",以小端的方式存儲就是"\x0b\x00",即低位在前,高位在後。
"\xf7\xff"表示-9,-9的16進製表示爲"\xff\xf7",注意,由於是負數,因此-9須要經過9的補碼來表示。9 --> 0b00001001, 其反碼爲:0b11110110, 補碼等於反碼加1:0b11110111, 因此,16進制就是:"\xff\xf7"
另外: "<H16s" 表示 第一個參數爲16位無符號整數, 第二個參數爲長度16的字節字符串。
符號 | 符號說明 |
---|---|
< | little-endian 小端 低位 --> 高位 |
> | ! | big-endian 大端 高位 --> 低位 |
b | 8位有符號整數 |
B | 8位無符號整數 |
h | 16位有符號整數 |
H | 16位無符號整數 |
i | 32位有符號整數 |
I | 32位無符號整數 |
q | 64位有符號整數 |
Q | 64位無符號整數 |
f | 32位浮點數 |
d | 64位浮點數 |
? | 布爾型 |
s | bytes或bytearray |
sys.stdout = io.StringIO()
isinstance(1, int) #True isinstance(1.0, int) #False isinstance(1.0, str) #False isinstance([], list) #list
import calendar, datetime, time moon_datetime_a = datetime.datetime(1969, 7, 20, 20, 17, 40) #datetime.datetime(1978, 7, 20, 20, 17, 40) moon_time = calendar.timegm(moon_datetime_a.utctimetuple()) #269813860 moon_datetime_b = datetime.datetime.utcfromtimestamp(moon_time) #datetime.datetime(1978, 7, 20, 20, 17, 40) moon_datetime_a.isoformat() #datetime.datetime(1978, 7, 20, 20, 17, 40) moon_datetime_b.isoformat() #datetime.datetime(1978, 7, 20, 20, 17, 40) time.strftime("%Y-%m-%dT%H:%M:%S", time.gmtime(moon_time)) #'1978-07-20T20:17:40'
date_from_name = {} path = "." for name in os.listdir(path): fullname = os.path.join(path, name) if os.path.isfile(fullname): date_from_name[fullname] = os.path.getmtime(fullname) date_from_name
import os, collections data = collections.defaultdict(list) path = "C:/Py" #or "C:\\Py" for root, dirs, files in os.walk(path): for filename in files: fullname = os.path.join(root, filename) key = (os.path.getsize(fullname), filename) data[key].append(fullname) for key, value in data.items(): print(key, value)