Python 常用系统模块整理

Posted 烟草的香味

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 常用系统模块整理相关的知识,希望对你有一定的参考价值。

Python中的常用的系统模块中部分函数等的整理

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.major python版本
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下为‘ ‘,Linux下为‘ ‘)
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的内容    



以上是关于Python 常用系统模块整理的主要内容,如果未能解决你的问题,请参考以下文章

Python 常用模块学习

IOS开发-OC学习-常用功能代码片段整理

python常用小模块使用汇总

python:os模块常用方法整理

ansible安装部署和配置常用模块整理

python常用模块整理