Python 常用系統模塊整理

Python中的常用的系統模塊中部分函數等的整理

  • random: 隨機數
  • sys: 系統相關
  • os: 系統相關的
  • subprocess: 執行新的進程
  • multiprocessing: 進程相關
  • threading: 線程相關
  • pickle: 將對象轉換成二進制文件
  • time: 時間
  • datetime: 基本的日期和時間類型
  • timeit: 準確測量小段代碼的執行時間
  • urllib: 訪問網絡的包
  • http.cookielib: 主要作用是提供可存儲cookie的對象
  • socket: 套接字相關模塊,處于網路的傳輸層
  • getopt: 命令行參數解析
  • configparser: 配置文件操作的模塊
  • re: 正則表達式
  • itertools: 產生不同類型迭代器
  • logging: 日志模塊
  • tkinter: 一個窗口模塊
random
randint(start, end)返回一個隨機整數x(start<=x<=end)
uniform(start, end)返回一個隨機浮點數x(start<=x<=end)
choice(seq)從序列seq中返回隨機的元素
sample(seq, n)從序列seq中選擇n個隨機且獨立的元素
random()用于生成一個0到1的隨機符點數

?

sys: 系統相關的
path搜索模塊的路徑(列表)
version_info.majorpython版本
getsizeof(name)返回 name 變量的內存使用量

?

os: 系統相關的
文件/目錄相關
getcwd()返回當前工作目錄
chdir(path)改變工作目錄
listdir(path='.')列舉指定目錄中的文件名('.'表示當前目錄,'..'表示上一級目錄)
mkdir(path)創建單層目錄,如該目錄已存在拋出異常
makedirs(path)遞歸創建多層目錄,如該目錄已存在拋出異常
remove(path)刪除文件
rmdir(path)刪除單層目錄,如該目錄非空則拋出異常
removedirs(path)遞歸刪除目錄,從子目錄到父目錄逐層嘗試刪除,遇到目錄非空則拋出異常
rename(old, new)將文件old重命名為new
system(command)運行系統的shell命令
popen(cmd, mode='r', buffering=-1)運行系統的shell命令,返回對象需要 read(),且需要 close()
startfile(path)使用與文件格式相關聯的程序打開文件
walk(top)遍歷top路徑以下所有的子目錄,返回一個三元組: (路徑, [包含目錄], [包含文件])
getlogin()返回當前登錄的用戶名
environ系統中定義的環境變量,返回一個 dicht 字典對象
curdir指代當前目錄('.')
pardir指代上一級目錄('..')
sep輸出操作系統特定的路徑分隔符(Win下為'\\',Linux下為'/')
linesep當前平臺使用的行終止符(Win下為'\r\n',Linux下為'\n')
name指代當前使用的操作系統(包括: 'posix',? 'nt', 'mac', 'os2', 'ce', 'java')
path: 包含與路徑相關的一些函數, 有以下模塊
basename(path)去掉目錄路徑,單獨返回文件名
dirname(path)去掉文件名,單獨返回目錄路徑
join(path1[, path2[, ...]])將path1, path2各部分組合成一個路徑名
split(path)分割文件名與路徑,返回(f_path, f_name)元組。如果完全使用目錄,它也會將最后一個目錄作為文件名分離,且不會判斷文件或者目錄是否存在
splitext(path)分離文件名與擴展名,返回(f_name, f_extension)元組
getsize(file)返回指定文件的尺寸,單位是字節
getatime(file)返回指定文件最近的訪問時間(浮點型秒數,可用time模塊的gmtime()或localtime()函數換算)
getctime(file)返回指定文件的創建時間(浮點型秒數,可用time模塊的gmtime()或localtime()函數換算)
getmtime(file)返回指定文件最新的修改時間(浮點型秒數,可用time模塊的gmtime()或localtime()函數換算)
exists(path)判斷指定路徑(目錄或文件)是否存在
isabs(path)判斷指定路徑是否為絕對路徑
isdir(path)判斷指定路徑是否存在且是一個目錄
isfile(path)判斷指定路徑是否存在且是一個文件
islink(path)判斷指定路徑是否存在且是一個符號鏈接(快捷方式)
ismount(path)判斷指定路徑是否存在且是一個掛載點(盤符)
samefile(path1, paht2)判斷path1和path2兩個路徑是否指向同一個文件
多任務相關
fork()復制當前進程,在子進程中返回0,在父進程中返回紫禁城pid, Linux下使用
getpid()返回當前進程的pid
getppid()返回父進程id
exit()終止當前進程

?

subprocess: 執行新的進程
check_output(command, stderr=subprocess.STDOUT, shell=True)?運行shell命令,返回結果?
call(args, *,shell=False, cwd=None, timeout=None)?運行指定命令(shell=True 執行shell命令)?

?

multiprocessing: 進程相關

  • class Process: 進程類
    • __init__(target, name, args): 創建方法, (進程執行方法, 進程名, 參數(元祖))  
    • name: 當前進程實例別名, 默認為 Process-1, Process-2...  
    • pid: 當前進程實例的pid  
    • start(): 開始執行  
    • run(): 若沒有給定 target 參數, start 時執行對象中的run()方法  
    • join(time): 等待進程終止, time為超時時間, 設置后,父進程會等待子進程結束后繼續執行  
    • isAlive(): 判斷進程是否活動  
    • terminate(): 立即終止進程  
  • class Pool: 進程池, 必須在 if __name__ == '__main__': 中執行
    • __init__(processes): (最大進程數)  
    • map(func, iterable): 對迭代器中的每個元素執行func方法, 返回結果列表  
    • imap(func, iterable): 對迭代器中的每個元素執行func方法, 比 map 方法慢的多,返回迭代器  
    • imap_unordered(func, iterable): 與 imap 方法相同,只是結果無序  
    • apply(func, args=()): 執行方法func, 并將 args 參數傳入(阻塞方式), 返回結果用 res.get() 獲取  
    • apply_async(func, args=()): apply 方法的異步版本  
    • terminate(): 立即終止  
    • close(): 關閉線程池  
    • join(): 等待 線程池中所有進程執行完畢, 必須放在 close 方法后  

?

threading: 線程相關

  • current_thread(): 獲取當前線程的對象
  • enumerate(): 返回包含正在運行線程的list
  • active_count(): 返回正在運行線程的數量, 等于 enumerate 方法返回值的長度
  • class Thread: 線程類
    • __init__(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None):  
      • target: 目標函數    
      • args: 參數元組    
    • start(): 開啟線程  
    • join(time): 等待線程終止, time為超時時間, 若不設置,主線程結束會終結子線程  
    • isAlive(): 線程是否活動  
    • getName(): 線程名  
    • setName(): 設置線程名  
  • class Lock: 線程鎖  
    • acquire([blocking]): 上鎖, 返回布爾值 是否成功上鎖
      • blocking: 若為True(默認), 則線程阻塞, 若為 False則不會阻塞
    • release(): 釋放鎖

?

pickle: 將對象轉換成二進制文件
dump(data,file)?data是待存儲的數據對象,file是目標存儲的文件對象(要用'wb'的模式open文件)?
load(file)?將二進制文件轉換成對象(要用'rb'的模式open文件)?

?

time: 時間
altzone?返回格林威治西部的夏令時地區的偏移秒數;如果該地區在格林威治東部會返回負值(如西歐,包括英國);對夏令時啟用地區才能使用。?
timezone?time.timezone 屬性是當地時區(未啟動夏令時)距離格林威治的偏移秒數(美洲 >0;大部分歐洲,亞洲,非洲 <= 0)?
tzname?屬性是包含兩個字符串的元組: 第一是當地非夏令時區的名稱,第二個是當地的 DST 時區的名稱。?
asctime([t])?接受時間元組并返回一個可讀的形式為"Tue Dec 11 18:07:14 2015"(2015年12月11日 周二 18時07分14秒)的 24 個字符的字符串。?
clock()?

用以浮點數計算的秒數返回當前的 CPU 時間。用來衡量不同程序的耗時,比 time.time() 更有用。
Python 3.3 以后不被推薦,由于該方法依賴操作系統,建議使用 perf_counter() 或 process_time() 代替(一個返回系統運行時間,一個返回進程運行時間,請按照實際需求選擇)

ctime([secs])?作用相當于 asctime(localtime(secs)),未給參數相當于 asctime()?
daylight?如果夏令時被定義,則該值為非零。?
gmtime([secs])?接收時間輟(1970 紀元年后經過的浮點秒數)并返回格林威治天文時間下的時間元組 t(注: t.tm_isdst 始終為 0)?
localtime([secs])?

接收時間輟(1970 紀元年后經過的浮點秒數)并返回當地時間下的時間元組 t(t.tm_isdst 可取 0 或 1,取決于當地當時是不是夏令時)
返回的時間元組:

  • 索引值(Index)屬性(Attribute) 值(Values)
  • 0 tm_year(年) (例如: 2015)
  • 1 tm_mon(月) 1 ~ 12
  • 2 tm_mday(日) 1 ~ 31
  • 3 tm_hour(時) 0 ~ 23
  • 4 tm_min(分) 0 ~ 59
  • 5 tm_sec(秒) 0 ~ 61(見下方注1)
  • 6 tm_wday(星期幾) 0 ~ 6(0 表示星期一)
  • 7 tm_yday(一年中的第幾天) 1 ~ 366
  • 8 tm_isdst(是否為夏令時) 0, 1, -1(-1 代表夏令時)?
mktime(t)?接受時間元組并返回時間輟(1970紀元后經過的浮點秒數)?
perf_counter()?返回計時器的精準時間(系統的運行時間),包含整個系統的睡眠時間。由于返回值的基準點是未定義的,所以,只有連續調用的結果之間的差才是有效的。?
process_time()返回當前進程執行 CPU 的時間總和,不包含睡眠時間。由于返回值的基準點是未定義的,所以,只有連續調用的結果之間的差才是有效的。
sleep(secs)推遲調用線程的運行,secs 的單位是秒。
strftime(format[, t])

把一個代表時間的元組或者 struct_time(如由 time.localtime() 和 time.gmtime() 返回)轉化為格式化的時間字符串。如果 t 未指定,將傳入 time.localtime()。如果元組中任何一個元素越界,將會拋出 ValueError 異常。
format格式: (字符串)

  • %a 本地(locale)簡化星期名稱
  • %A 本地完整星期名稱
  • %b 本地簡化月份名稱
  • %B 本地完整月份名稱
  • %c 本地相應的日期和時間表示(04/07/10 10:43:39)
  • %d 一個月中的第幾天(01 - 31)
  • %f 微秒(0 - 999999)
  • %H 一天中的第幾個小時(24 小時制,00 - 23)
  • %I 一天中的第幾個小時(12 小時制,01 - 12)
  • %j 一年中的第幾天(001 - 366)
  • %m 月份(01 - 12)
  • %M 分鐘數(00 - 59)
  • %p 本地 am 或者 pm 的相應符,只有與“%I”配合使用才有效果。
  • %S 秒(01 - 61)
  • %U 一年中的星期數(00 - 53 星期天是一個星期的開始)第一個星期天之前的所有天數都放在第 0 周, 當使用 strptime() 函數時,只有當在這年中的周數和天數被確定的時候才會被計算。
  • %w 一個星期中的第幾天(0 - 6,0 是星期天), 當使用 strptime() 函數時,只有當在這年中的周數和天數被確定的時候才會被計算。
  • %W 和 %U 基本相同,不同的是 %W 以星期一為一個星期的開始
  • %x 本地相應日期(04/07/10)
  • %X 本地相應時間(10:43:39)
  • %y 去掉世紀的年份(00 - 99)
  • %Y 完整的年份
  • %z 用 +HHMM 或 -HHMM 表示距離格林威治的時區偏移(H 代表十進制的小時數,M 代表十進制的分鐘數)
  • %Z 時區的名字(如果是本地時間為空字符)
  • %% %號本身
strptime(string[, format])把一個格式化時間字符串轉化為 struct_time。實際上它和 strftime() 是逆操作。
time()返回當前時間的時間戳(1970 紀元年后經過的浮點秒數)

?

datetime: 基本的日期和時間類型

  • MINYEAR: date 和 datetime 對象所能支持的最小年份,object.MINYEAR 的值為 1
  • MAXYEAR: date 和 datetime 對象所能支持的最大年份,object.MAXYEAR 的值為 9999
  • class date: 表示日期的類,常用屬性: year, month, day
    • year: 年(只讀)  
    • month: 月(只讀)  
    • day: 日(只讀)  
    • min: date 對象所能表示的最早日期,date(MINYEAR, 1, 1)  
    • max: date 對象所能表示的最晚日期,date(MAXYEAR, 12, 31)  
    • resolution: date 對象表示日期的最小單位,在這里是 1 天,timedelta(days=1)  
    • today(): 返回一個表示當前本地日期的 date 對象  
    • fromtimestamp(timestamp): 根據給定的時間戮,返回一個 date 對象  
    • fromordinal(ordinal): 將 Gregorian 日歷時間轉換為 date 對象(Gregorian Calendar: 一種日歷表示方法,類似于我國的農歷,西方國家使用比較多)  
    • replace(year, month, day): 生成一個新的日期對象,用參數指定的年、月、日代替原有對象中的屬性  
    • timetuple(): 返回日期對應的 time.struct_time 對象(類似于 time 模塊的 time.localtime())  
    • toordinal(): 返回日期對應的 Gregorian Calendar 日期  
    • weekday(): 返回 0 ~ 6 表示星期幾(星期一是 0,依此類推)  
    • isoweekday(): 返回 1 ~ 7 表示星期幾(星期一是1, 依此類推)  
    • isocalendar(): 返回一個三元組格式 (year, month, day)  
    • isoformat(): 返回一個 ISO 8601 格式的日期字符串,如 "YYYY-MM-DD" 的字符串  
    • __str__(): 對于 date 對象 d 來說,str(d) 相當于 d.isoformat()  
    • ctime(): 返回一個表示日期的字符串,相當于 time 模塊的 time.ctime(time.mktime(d.timetuple()))
    • strftime(format): 返回自定義格式化字符串表示日期,下面有詳解  
    • __format__(format): 跟 date.strftime(format) 一樣,這使得調用 str.format() 時可以指定 data 對象的字符串  
    • strftime(format): 將指定的日期或時間轉換為自定義的格式化字符串  
      • format: 字符串,同 time    
  • class time: 表示時間的類,常用屬性: hour, minute, second, microsecond, tzinfo
    • hour: 時(只讀)  
    • minute: 分(只讀)  
    • second: 秒(只讀)  
    • microsecond: 微秒(只讀)  
    • tzinfo: 通過構造函數的 tzinfo 參數賦值(只讀)  
    • min: time 對象所能表示的最早時間,time(0, 0, 0, 0)  
    • max: time 對象所能表示的最晚時間,time(23, 59, 59, 999999)  
    • resolution: time 對象表示時間的最小單位,在這里是 1 毫秒, timedelta(microseconds=1)  
    • replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]): 生成一個新的時間對象,用參數指定時間代替原有對象中的屬性  
    • isoformat(): 返回一個 ISO 8601 格式的日期字符串,如 "HH:MM:SS.mmmmmm" 的字符串  
    • __str__(): 對于 time 對象 t 來說,str(t) 相當于 t.isoformat()  
    • strftime(format): 返回自定義格式化字符串表示時間,下面有詳解  
    • __format__(format): 跟 time.strftime(format) 一樣,這使得調用 str.format() 時可以指定 time 對象的字符串  
    • utcoffset(): 如果 tzinfo 屬性是 None,則返回 None;否則返回 self.tzinfo.utcoffset(self)  
    • dst(): 如果 tzinfo 屬性是 None,則返回 None;否則返回 self.tzinfo.dst(self)  
    • tzname(): 如果 tzinfo 屬性是 None,則返回 None;否則返回 self.tzinfo.tzname(self)  
    • strftime(format): 將指定的日期或時間轉換為自定義的格式化字符串  
  • class datetime: 是 date 對象和 time 對象的結合體,并且包含他們的所有信息,常用屬性: year, month, day, hour, minute, second, microsecond, tzinfo
    • year: 年(只讀)  
    • month: 月(只讀)  
    • day: 日(只讀)  
    • hour: 時(只讀)  
    • minute: 分(只讀)  
    • second: 秒(只讀)  
    • microsecond: 微妙(只讀)  
    • tzinfo: 通過構造函數的 tzinfo 參數賦值(只讀)  
    • min: datetime 對象所能表示的最早日期,datetime(MINYEAR, 1, 1, tzinfo=None)  
    • max: datetime 對象所能表示的最晚日期,datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999, tzinfo=None)  
    • resolution: datetime 對象表示日期的最小單位,在這里是 1 毫秒,timedelta(microseconds=1)  
    • today(): 返回一個表示當前本地時間的 datetime 對象,等同于 datetime.fromtimestamp(time.time())  
    • now(tz=None): 返回一個表示當前本地時間的 datetime 對象;如果提供了參數 tz,則獲取 tz 參數所指時區的本地時間  
    • utcnow(): 返回一個當前 UTC 時間的 datetime 對象  
    • fromtimestamp(timestamp, tz=None): 根據時間戮創建一個 datetime 對象,參數 tz 指定時區信息  
    • utcfromtimestamp(timestamp): 根據時間戮創建一個 UTC 時間的 datetime 對象  
    • fromordinal(ordinal): 返回對應 Gregorian 日歷時間對應的 datetime 對象  
    • combine(date, time): 根據參數 date 和 time,創建一個 datetime 對象  
    • strptime(date_string, format): 將格式化字符串轉換為 datetime 對象  
    • date(): 返回一個 date 對象datetime.time() - 返回一個 time 對象(tzinfo 屬性為?None)
    • timetz(): 返回一個 time() 對象(帶有 tzinfo 屬性)  
    • replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]): 生成一個新的日期對象,用參數指定日期和時間代替原有對象中的屬性  
    • astimezone(tz=None): 傳入一個新的 tzinfo 屬性,返回根據新時區調整好的 datetime 對象  
    • utcoffset(): 如果 tzinfo 屬性是 None,則返回 None;否則返回 self.tzinfo.utcoffset(self)  
    • dst(): 如果 tzinfo 屬性是 None,則返回 None;否則返回 self.tzinfo.dst(self)  
    • tzname(): 如果 tzinfo 屬性是 None,則返回 None;否則返回 self.tzinfo.tzname(self)  
    • timetuple(): 返回日期對應的 time.struct_time 對象(類似于 time 模塊的 time.localtime())  
    • utctimetuple(): 返回 UTC 日期對應的 time.struct_time 對象  
    • toordinal(): 返回日期對應的 Gregorian Calendar 日期(類似于 self.date().toordinal())
    • timestamp(): 返回當前時間的時間戳(類似于 time 模塊的 time.time())  
    • weekday(): 返回 0 ~ 6 表示星期幾(星期一是 0,依此類推)  
    • isoweekday(): 返回 1 ~ 7 表示星期幾(星期一是1, 依此類推)  
    • isocalendar(): 返回一個三元組格式 (year, month, day)  
    • isoformat(sep='T'): 返回一個 ISO 8601 格式的日期字符串,如 "YYYY-MM-DD" 的字符串  
    • __str__(): 對于 date 對象 d 來說,str(d) 相當于 d.isoformat()  
    • ctime(): 返回一個表示日期的字符串,相當于 time 模塊的 time.ctime(time.mktime(d.timetuple()))  
    • strftime(format): 返回自定義格式化字符串表示日期  
    • __format__(format): 跟 datetime.strftime(format) 一樣,這使得調用 str.format() 時可以指定 data 對象的字符串  
  • class timedelta: 表示時間間隔,即兩個時間點(date,time,datetime)之間的長度(可以與時間日期做加減法)  
    • __init__(years, months, days, hours, minutes, seconds, microseconds): 創建  
    • days: 天數(只讀)  
    • seconds: 秒數(只讀)  
    • microseconds: 微妙數(只讀)  
    • min: timedelta 對象負值的極限,timedelta(-999999999)  
    • max: timedelta 對象正值的極限,timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)  
    • resolution: 兩個 timedelta 不相等的對象之間最小的差值,timedelta(microseconds=1)  
    • total_seconds(): 返回 timedelta 對象所包含的總秒數  
  • class tzinfo: 表示時區的基類,為上方的 time 和 datetime 類提供調整的基準
  • class timezone: 表示 UTC 時區的固定偏移,是 tzinfo 基類的實現

?

timeit: 準確測量小段代碼的執行時間

  • timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000): 創建一個 Timer 實例
    • stmt: 需要測量的語句或函數  
    • setup: 初始化代碼或構建環境的導入語句  
    • timer: 計時函數  
    • number: 每一次測量中語句被執行的次數  
  • repeat(stmt='pass', setup='pass', timer=<default timer>, repeat=3, number=1000000): 創建一個 Timer 實例
    • repeat: 重復測量的次數  
  • default_timer(): 默認的計時器,一般是 time.perf_counter(),time.perf_counter() 方法能夠在任一平臺提供最高精度的計時器(它也只是記錄了自然時間,記錄自然時間會被很多其他因素影響,例如計算機的負載)。
  • class Timer(stmt='pass', setup='pass', timer=<timer function>): 計算小段代碼執行速度的類
    • 構造函數需要的參數有(stmt, setup, timer)。前兩個參數的默認值都是 'pass',timer 參數是平臺相關的;前兩個參數都可以包含多個語句,多個語句間使用分號(;)或新行分隔開。  
    • timeit(number=1000000): 計算語句執行 number 次的時間  
    • repeat(repeat=3, number=1000000): 重復調用 timeit() repeat次  
    • print_exc(file=None): 輸出計時代碼的回溯(Traceback)  
      • file: 指定將回溯發送的位置    

?

urllib: 訪問網絡的包

  • request: 打開url(主要是HTTP),并進行身份驗證、再導航、cookie等等。
    • urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None): 打開一個url鏈接, 鏈接成功返回一個HTTPResponse類  
      • url: 字符串或Request對象    
      • class HTTPResponse:    
        • begin(self)      
        • close(self): 關閉鏈接      
        • flush(self): 刷新寫緩沖區      
        • getcode(self): 返回響應碼      
        • getheader(self, name, default=None): 返回name的響應頭      
        • getheaders(self): 返回元組,元素為頭信息(header, value)      
        • info(self): 返回響應頭信息,是一個HTTPMessage類      
        • geturl(self): 返回頁面的實際URL。      
        • isclosed(self): 如果鏈接是關閉的返回True      
        • peek(self, n=-1)      
        • read(self, amt=None): 讀取并返回到n個字節。如果省略了這個參數,沒有,或者是負的,讀取返回所有數據      
        • readline(self, limit=-1): 從流中讀取并返回一行。如果指定大小,讀取指定字節數      
    • class Request:  
      • __init__(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)    
        • data: 若被賦值,以post方式提交,默認為get方式,字符串使用urllib.parse.urlencode()方法進行處理      
        • headers: 請求頭,是一個字典      
      • add_header(key, value): 將key:value添加導頭信息中    
      • add_data(key, value): 添加提交信息    
    • HTTPCookieProcessor(cookiejar): 用來處理cookie, 返回一個 HTTPCookieProcessor 類  
    • build_opener(handlers): 創建一個opener對象  
      • handlers: 可以時cookie,代理等, cookie需要使用HTTPCookieProcessor(處理)    
      • class opener: urlopen()方法是它的一個實現,用于打開鏈接    
        • open(Request): 使用Request類打開鏈接      
  • error: 異常處理模塊
  • parse: 對url進行處理的模塊
    • urlencode(query, doseq=False, safe='', encoding=None, errors=None, quote_via=quote_plus): 對post請求的表單進行處理  
    • unquote(string, encoding='utf-8', errors='replace') : 將url(%2B等)轉換成正常字符串  
  • robotparser: robots.txt解析模塊

http.cookielib: 主要作用是提供可存儲cookie的對象

  • class CookieJar: 一個用來保存Cookie的類
  • class FileCookieJar:
  • class MozillaCookieJar: 將Cookie保存到文件中
    • save(filename=None, ignore_discard=False, ignore_expires=False): 將cookie保存到filename文件中  
      • ignore_discard: 為True,即使cookies將被丟棄也將它保存下來    
      • ignore_expires: 為True,如果在該文件中cookies已經存在,則覆蓋原文件寫入    
    • load(filename=None, ignore_discard=False, ignore_expires=False): 將cookie從文件中取出  
  • class LWPCookieJar:

socket: 套接字相關模塊,處于網路的傳輸層

  • socket(family=AF_INET, type=SOCK_STREAM): 創建一個套接字, 返回 socket 類
    • family: 套接字所屬協議  
      • AF_INET: ipv4(默認)    
      • AF_INET6: ipv6    
    • type: 套接字類型  
      • SOCK_STREAM: tcp連接(默認)    
      • SOCK_DGRAM: udp連接    
  • class socket: 套接字連接的類
    • connect(address): 連接到遠程服務器, 一般在tcp連接時使用  
      • address: (ip, 端口)    
    • send(bytes): 發送數據,一般在tcp連接時使用  
    • sendto(bytes, address): 發送數據,一般在udp連接時使用  
    • bind(address): 將套接字綁定到指定地址  
    • listen([backlog]): 啟動監聽  
      • backlog: 最大連接數    
    • accept(): 接受一個連接, 必須先啟動監聽, 返回客戶端套接字對象和連接來源  
    • getpeername(): 返回連接的遠程地址  
    • recv(bufsize): 從套接字接收數據  
      • bufsize: 一次接收的最大數據量    
    • recvfrom(bufsize): 從套接字接收數據,返回 數據,地址  
    • close(): 關閉套接字連接  

getopt?

  • getopt(args, shortopts, longopts = []): 讀取命令行參數使用,返回 解析的參數列表,其他參數
    • args: 參數,一般為 sys.argv[1:]  
    • shortopts: 短參數(-a)  
      • 'ab:c': 沒有':'不跟參數, b 后跟參數    
    • longopts: 長指令(--a)  
      • ['abc', 'bcd=', 'cde']: 沒有'='不跟參數    

?

configparser: 配置文件操作的模塊

  • class ConfigParser: 配置文件操作類
    • read(path, encoding): 打開指定文件  
    • sections(): 獲取所有的域  
    • options(sectionname): 獲取指定域下的所有key  
    • items(sectionname): 獲取指定域下的所有 (key, value) 對  
    • get(sectionname,key): 獲取指定域下key對應的value  
    • add_section(sectionname): 添加域, 添加完成后需要寫入  
    • set(sectionname, key, value): 在指定域添加一條配置, 添加完成后需要寫入  
    • write(file): 寫入文件  
      • file: open(path, 'w', encoding)    
    • 配置文件:  
      [sectionname1]
      key1 = value1

?

re: 正則表達式

  • search(pattern, string, flags=0): 查找字符串于正則表達式匹配的第一個位置,返回 match 類
    • 正則表達式字符串前邊最好加上'r'  
  • match(pattern,string): 在字符串開始處匹配, 返回 Match 對象(可以使用group方法返回匹配部分)
  • compile(pattern): 創建指定正則表達式的模式對象, 當再次search時不用指定正則表達式
  • split(pattern,string): 根據模式分割字符串,返回列表
  • findall(pattern,string): 列表形式返回匹配項
  • sub(pat,repl,string) : 用 repl 替換 pat 匹配項
  • escape(string) : 對字符串里面的特殊字符串進行轉義

itertools: 產生不同類型迭代器?

  • count(start=0, step=1): 創建一個從 start 開始,以 step 為步長的的無限整數迭代器
  • cycle(iterable): 對 iterable 中的元素反復執行循環,返回迭代器
  • repeat(object [,times]: 反復生成 object
    • times: 給定重復次數,否則為無限  
  • chain(iterable1, iterable2, ...): 將多個可迭代對象連接起來,作為一個新的迭代器返回
  • compress(data, selectors): 對數據進行篩選
    • data: 數據集合  
    • selectors: 對data進行篩選的標準,當 selectors 元素為true是,保留 data 對應位置的元素,否則去除  
  • dropwhile(predicate, iterable): 對集合中的數據進行篩選
    • predicate: 函數,對于 iterable 中的元素,如果 predicate(item) 為 true,則丟棄該元素,否則返回該項及所有后續項。  
    • iterable: 可迭代對象  
  • groupby(iterable[, keyfunc]): 對序列進行分組
    • iterable: 一個可迭代對象  
    • keyfunc: 分組函數,用于對 iterable 的連續項進行分組,如果不指定,則默認對 iterable 中的連續相同項進行分組,返回一個 (key, sub-iterator) 的迭代器  
  • combinations(iterable, r): 對 iterable 以每組r個進行分組,列出所有可能(不打亂順序,只與后邊的進行組合),返回迭代器
  • permutations(iterable, r=None): 對 iterable 以每組r個進行分組,列出所有可能,返回迭代器

logging: 日志模塊

  • basicConfig(**kwargs): 設置全局配置
    • filename: 即日志輸出的文件名,如果指定了這個信息之后,實際上會啟用 FileHandler,而不再是 StreamHandler,這樣日志信息便會輸出到文件中了  
    • filemode: 這個是指定日志文件的寫入方式,有兩種形式,一種是 w,一種是 a,分別代表清除后寫入和追加寫入  
    • format: 指定日志信息的輸出格式,詳細參數可以參考: https://docs.python.org/3/library/logging.html?highlight=logging%20threadname#logrecord-attributes  
      • %(levelno)s: 打印日志級別的數值    
      • %(levelname)s: 打印日志級別的名稱    
      • %(pathname)s: 打印當前執行程序的路徑,其實就是sys.argv[0]    
      • %(filename)s: 打印當前執行程序名    
      • %(funcName)s: 打印日志的當前函數    
      • %(lineno)d: 打印日志的當前行號    
      • %(asctime)s: 打印日志的時間    
      • %(thread)d: 打印線程ID    
      • %(threadName)s: 打印線程名稱    
      • %(process)d: 打印進程ID    
      • %(processName)s: 打印線程名稱    
      • %(module)s: 打印模塊名稱    
      • %(message)s: 打印日志信息    
    • datefmt: : 指定時間的輸出格式  
    • style: 如果 format 參數指定了,這個參數就可以指定格式化時的占位符風格,如 %、{、$ 等  
    • level: 指定日志輸出的類別,程序會輸出大于等于此級別的信息  
    • stream: 在沒有指定 filename 的時候會默認使用 StreamHandler,這時 stream 可以指定初始化的文件流
    • handlers: 可以指定日志處理時所使用的 Handlers,必須是可迭代的  
  • Formatter(fmt,datefmt): 設置日志信息輸出格式
  • FileHandler(filename): 指定日志輸出的文件名, 返回 Handler 對象
  • StreamHandler: 日志輸出到流,可以是 sys.stderr,sys.stdout 或者文件。
  • addHandler(handler): 將 Handler 對象配置添加
  • class Handler:
    • setFormatter(formatter): 設置日志信息輸出格式, formatter對象通過 logging.Formatter(str) 獲得  
  • handlers: handler 模塊
    • BaseRotatingHandler;基本的日志回滾方式。  
    • RotatingHandler: 日志回滾方式,支持日志文件最大數量和日志文件回滾。  
    • TimeRotatingHandler: 日志回滾方式,在一定時間區域內回滾日志文件。  
    • SocketHandler: 遠程輸出日志到TCP/IP sockets。  
    • DatagramHandler: 遠程輸出日志到UDP sockets。  
    • SMTPHandler: 遠程輸出日志到郵件地址。  
    • SysLogHandler: 日志輸出到syslog。  
    • NTEventLogHandler: 遠程輸出日志到Windows NT/2000/XP的事件日志。  
    • MemoryHandler: 日志輸出到內存中的指定buffer。  
    • HTTPHandler: 通過”GET”或者”POST”遠程輸出到HTTP服務器。
  • 日志級別(屬性):
    • CRITICAL: 50  
    • ERROR: 40  
    • WARNING: 30  
    • INFO: 20  
    • DEBUG: 10  
    • NOTSET: 0  
  • getLogger(modelName): 拿到 Logger 對象,進行日志輸出
  • class Logger: 進行日志操作的對象  
    • info(msg): 輸出 info 級別日志  
    • debug(msg): 輸出 debug 級別日志  
    • warning(msg): 輸出 warning 級別日志  
    • setLevel(lavel): 設置日志輸出的類別,程序會輸出大于等于此級別的信息  

tkinter: 一個窗口模塊?

  • 控件:
    • Button: 按鈕控件;在程序中顯示按鈕。  
    • Canvas: 畫布控件;顯示圖形元素如線條或文本  
    • Checkbutton: 多選框控件;用于在程序中提供多項選擇框  
    • Entry: 輸入控件;用于顯示簡單的文本內容  
    • Frame: 框架控件;在屏幕上顯示一個矩形區域,多用來作為容器  
    • Label: 標簽控件;可以顯示文本和位圖  
    • Listbox: 列表框控件;在Listbox窗口小部件是用來顯示一個字符串列表給用戶  
    • Menubutton: 菜單按鈕控件,由于顯示菜單項。  
    • Menu: 菜單控件;顯示菜單欄,下拉菜單和彈出菜單  
    • Message: 消息控件;用來顯示多行文本,與label比較類似  
    • Radiobutton: 單選按鈕控件;顯示一個單選的按鈕狀態  
    • Scale: 范圍控件;顯示一個數值刻度,為輸出限定范圍的數字區間  
    • Scrollbar: 滾動條控件,當內容超過可視化區域時使用,如列表框。.  
    • Text: 文本控件;用于顯示多行文本  
    • Toplevel: 容器控件;用來提供一個單獨的對話框,和Frame比較類似  
    • Spinbox: 輸入控件;與Entry類似,但是可以指定輸入范圍值  
    • PanedWindow: PanedWindow是一個窗口布局管理的插件,可以包含一個或者多個子控件。  
    • LabelFrame: labelframe 是一個簡單的容器控件。常用與復雜的窗口布局。  
    • tkMessageBox: 用于顯示你應用程序的消息框。  
  • Tk(): 實例化一個對象,返回一個Tk對象
    • class Tk: 是一個頂層窗口  
      • title(titel): 設置窗口的標題    
      • mainloop(): 顯示窗口,進入窗口循環    
      • quit(): 退出    
  • Label(tk|Frame, text=''[, textvariable, image, justify, compound, fount]): 設置窗口要顯示的內容,返回一個Label對象
    • textvariable: 一個文本變量,可以使用 StringVar, IntVar 等  
    • image: 圖片顯示需要一個 tkinter.PhotoImage 對象  
      • class PhotoImage: 描述圖片的類    
      • __init__(file='路徑')    
    • justify: 對齊方式 tkinter.LEFT(左對齊) tkinter.RIGHT(右對齊) tkinter.CENTER(居中,默認)  
    • compound: 設置圖片與文字的相對關系  
      • tkinter.CENTER(文字在圖片上方)    
    • fount: 設置字體 fount = ('字體', 大小)  
    • class Label:  
      • pack([side, padx, padxy, anchor, fill]): 將設置提交, 無參時自動調節組件的尺寸位置    
        • side: 設置組件的位置, 有tkinter.LEFT,tkinter.RIGHT等      
        • padx: 設置組件與x軸的間距      
        • pady: 設置組件與y軸的間距      
        • anchor: 對齊方式, tkinter.W(左對齊)等      
        • fill: 是否填充,tkinter.X(橫向填充), tkinter.Y(縱向填充)      
      • grid(row, column[padx, pady, sticky]): 將控件以用列表的形式提交    
        • row: 行,從0開始      
        • column: 列,從0開始      
        • sticky: 對齊方式, tkinter.W(左對齊)等      
  • Frame(tk): 創建一個框架,返回Frame對象,需要提交
  • Button(tk|frame, text='',bg='背景色', fg='前景色', command=點擊方法): 創建一個按鈕,返回一個Button對象,需要提交
  • Checkbutton(tk|frame, text='', variable=IntVar): 多選框,返回 Checkbutton 對象,需要提交
    • variable: 當選中狀態,值為1,未選中狀態值為0  
  • Radiobutton(tk|frame, text='', variable=IntVar, value=1[, indicatoron]): 單選框,返回Radiobutton對象,需要提交
    • variable: 同一組單選框,給定同一個variable  
    • value: 指定該單選框選中時 variable 的值,同一組單選框的 value 值需不同  
    • indicatoron: 指定是否顯示文本前的選擇框,默認True  
  • LabelFrame(tk|frame, text='', padx, pady): 一個容器框架,將其他控件顯示在 LabelFrame 中,需要提交
    • padx: 設置容器與x軸的距離  
    • pady: 設置容器與y軸的距離  
  • Entry(tk|frame[, textvariable, show...]): 輸入框,返回 Entry 對象,需要提交
    • textvariable: 傳入一個變量,用于保存輸入  
    • show: 所有的輸入都使用show顯示,如需要密碼輸入 show='*', 則所有的輸入都是'*'
    • validate: 是否開啟驗證功能  
      • focus: 當獲得或失去焦點時    
      • focusin: 當獲得焦點時    
      • focusout: 當失去焦點時    
      • key: 當輸入框被編輯時    
      • all: 當出現上邊任何一種情況時    
      • none: 不驗證(默認)    
    • validatecommand: 驗證函數,返回True或False  
    • invalidcommand: 非法輸入函數,當驗證函數返回False時調用此函數  
    • class Entry:  
      • delete(a, b): 刪除輸入框中的指定內容,tkinter.END表示最后    
      • insert(a, str): 將str插入到輸入框的a位置處    
      • get(): 獲取輸入框中的內容    
  • Listbox(tk|frame, ): 一個列表容器,返回Listbox對象,需要提交
    • class Listbox:  
      • insert(a, str): 在列表的a(tkinter.END表示最后)位置添加字符串str    
      • delete(a[, b]): 刪除列表a位置的內容, 指定b,刪除a到b的內容    

轉載于:https://www.cnblogs.com/hujingnb/p/10254806.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248655.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHP從零開始--字段修飾符數據操作SQL語言

文章目錄一、 字段修飾符1.1主鍵1.2自動增長1.3非空1.4默認值1.5外鍵二、 對數據的操作2.1增加數據2.2刪除數據2.3更新數據2.4查詢數據2.4.1查詢所有的數據2.4.2查詢指定字段2.4.3去除重復字段2.4.4where表達式詳解2.4.5分組查詢2.4.6排序三、 SQL語言3.1DML3.2DDL3.3DCL一、 字…

scrapy爬蟲框架windows下的安裝問題

windows操作系統python版本是3.6.0通過Anaconda命令conda install scrapy安裝scrapy,安裝過程中沒有問題。然后在命令行輸入命令準備新建項目時&#xff0c;輸入 scrapy startproject firstscrapy時出現了from cryptography.hazmat.bindings._openssl import ffi, libImportErr…

charles使用說明(基于mac)

1. Charles簡介 1.1 Charles 需要java的運行環境支持&#xff0c;支持Windows、Mac&#xff1b;Fiddler不支持Mac。故Charles是在Mac下常用的網絡封包截取工具。 1.2 Charles原理&#xff1a;通過將自己設置成系統的網絡訪問代理服務器&#xff0c;使得所有的網絡訪問請求都通過…

看完就懂的連表查詢

文章目錄一、表與表之間的關系1.1一對一1.2一對多1.3多對多二、 連表查詢2.1概念2.2笛卡爾積2.3內連接2.4外連接2.4.1左外連接2.4.2右外連接2.4.3全連接2.4.4navicat導入導成sql語句2.4.5練習三、 子查詢3.1概念3.2練習3.2.1查詢工資最高的員工所有信息3.2.2查詢工資比7654工資…

jpa

Transactionalpublic void testPerson() {try {Person person1 personDao.findById(1);person1.setAddress("天津");} catch (Exception e) {e.printStackTrace();}} service就這樣一個方法&#xff0c;數據庫中數據也會進行更新 將查詢出來的數據對象賦值,然后不執…

影視感悟專題---1、B站-魔獸世界代理及其它亂七八糟

影視感悟專題---1、B站-魔獸世界代理及其它亂七八糟 一、總結 一句話總結&#xff1a; 看過的東西都可以學下&#xff0c;這樣既可以學習那些東西&#xff0c;都是對自己生活學習有幫助的&#xff0c;還可以彌補自己每天學的東西的不夠 1、《美麗心靈》中的博弈論共贏理論指的啥…

三分鐘掌握PHP操作數據庫

這里寫自定義目錄標題一、 操作數據庫&#xff08;mysql&#xff09;的工具1.1命令行工具1.2navicat界面化工具1.3phpAdmin界面化工具二、 表單傳值2.1文本框和文本域傳值2.2單選框傳值2.4下拉菜單傳值三、 php連接數據庫3.1連接方式介紹3.2mysqli基礎步驟3.2.1創建連接3.2.2選…

go語言之進階篇主協程先退出導致子協程沒來得及調用

1、主協程先退出導致子協程沒來得及調用 示例&#xff1a; package mainimport ("fmt""time" )//主協程退出了&#xff0c;其它子協程也要跟著退出 func main() {go func() {i : 0for {ifmt.Println("子協程 i ", i)time.Sleep(time.Second)}}(…

Actor模型(分布式編程)

Actor的目的是為了解決分布式編程中的一系列問題。所有消息都是異步交付的&#xff0c;因此將消息發送方與接收方分開&#xff0c;正是由于這種分離&#xff0c;導致actor系統具有內在的并發性&#xff1a;可以不受限制地并行執行任何擁有輸入消息的 actor。用Actor寫的程序可以…

看完就會的文件編程

文章目錄文件編程1.1文件操作函數1.1.1file()函數1.1.2fopen fgets fclose1.2.1讀取模式1.2.2寫入內容&#xff08;開頭&#xff09;1.2.3寫入內容&#xff08;追加&#xff09;1.1.3file_get_contents1.1.4文件路徑相關函數1.1.5file_exists1.1.6feof1.1.7copy()1.1.8set_incl…

Redis主從同步

主從同步原理 1. 從服務器向主服務器發送 SYNC 命令。2. 接到 SYNC 命令的主服務器會調用BGSAVE 命令&#xff0c;創建一個 RDB 文件&#xff0c;并使用緩沖區記錄接下來執行的所有寫命令。3. 當主服務器執行完 BGSAVE 命令時&#xff0c;它會向從服務器發送 RDB 文件&#xff…

BigDecimal轉String,int,double及簡單操作運算、方法

---恢復內容開始---1.字符型數據&#xff1a;char\varchar\text這幾種數據類型都是用來裝字符串的char 固定長度存儲數據varcahr 按變長存儲數據text 當你需要存儲非常大量的字符串時使用nchar、nvarchar、ntext這幾個也是存儲字符串的&#xff0c;與上面的對應相同。唯一不同的…

一文吃透PHP和HTML的嵌套寫法

1.1全部php生成結構 1.2html中嵌套php 總結如下&#xff1a; html和php混寫規則&#xff1a; php代碼必須包在<?php ?>html中寫php也是同理&#xff0c;但是有值輸出必須加上echo 1.3博客項目 1.3.1前后臺 前臺主要是做數據展示的&#xff0c;所有的用戶通過訪問域…

hello.cpp 第一個C++程序(本博客沒有特指都是以QT測試)

操作步驟&#xff1a;1.文件->新建文件或項目(N)->New File or Project->Qt Console Application->Choose->“名稱”中輸入工程名稱->“創建路徑”中輸入保存位置->下一步->選擇“工具包”->下一步->完成。 1.新標準 1 #include <iostream>…

一文看懂 GD2庫

文章目錄一、 GD2簡介1、 驗證碼&#xff08;實際上是一個img&#xff09;二、 GD2庫使用步驟2.1添加擴展2.2修改php配置文件2.3重啟服務三、 GD2里面的常用方法3.1 imagecreate3.2 imagecolorallocate3.3 imagefill3.4 輸出圖像資源3.5創建真彩畫布3.6在圖像中寫文字3.6.1imag…

算法實踐--最小生成樹(Kruskal算法)

什么是最小生成樹(Minimum Spanning Tree) 每兩個端點之間的邊都有一個權重值&#xff0c;最小生成樹是這些邊的一個子集。這些邊可以將所有端點連到一起&#xff0c;且總的權重最小 下圖所示的例子&#xff0c;最小生成樹是{cf, fa, ab} 3條邊 Kruskal算法 用到上一篇中介紹的…

洽談 “會話技術” 純干貨趕緊收藏吧

文章目錄一、 HTTP協議二、 會話三、 cookie3.1概念和設置cookie3.2讀取cookie3.3設置cookie有效期3.4cookie是跨頁面的3.5刪除cookie3.6登錄案例3.7cookie特點四、 session4.1概念4.2設置session4.3獲取session4.4清除session4.5模擬購物車案例一、 HTTP協議 HTTP協議是Hyper…

[bzoj2729][HNOI2012]排隊 題解 (排列組合 高精)

Description 某中學有 n 名男同學&#xff0c;m 名女同學和兩名老師要排隊參加體檢。他們排成一條直線&#xff0c;并且任意兩名女同學不能相鄰&#xff0c;兩名老師也不能相鄰&#xff0c;那么一共有多少種排法呢&#xff1f;&#xff08;注意&#xff1a;任意兩個人都是不同的…

詳解 正則表達式

文章目錄一、概念二、作用三、語法規則3.1定義規則3.2符號簡介3.3preg_match用法詳解3.4詳解元字符3.4.1 \d和[0-9]3.4.2 \D和[^0-9]3.4.3^和$3.4.4*代表出現0次或者多次3.4.5代表出現1次或者多次3.4.5&#xff1f;代表出現0次或者1次3.4.6{n}3.4.7{n,}3.4.8{n,m}3.4.9點號&…

Java:控制臺輸入車輛信息,將信息保存至數據庫中

程序功能&#xff1a;控制臺輸入車輛信息&#xff0c;將信息保存至數據庫中 程序代碼如下&#xff1a; BaseDao.java package DAO_dome.kehozuoye; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;i…