欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 常用系统模块整理

程序员文章站 2022-04-14 17:09:12
Python中的常用的系统模块中部分函数等的整理 random: 随机数 sys: 系统相关 os: 系统相关的 subprocess: 执行新的进程 multiprocessing: 进程相关 threading: 线程相关 pickle: 将对象转换成二进制文件 time: 时间 datetim ......

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下为'\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的内容