Python中的常用的系统模块中部分函数等的整理
- random: 随机数
- sys: 系统相关
- os: 系统相关的
- subprocess: 执行新的进程
- multiprocessing: 进程相关
- threading: 线程相关
- pickle: 将对象转换成二进制文件
- time: 时间
- datetime: 基本的日期和时间类型
- timeit: 准确测量小段代码的执行时间
- urllib: 访问网络的包
- http.cookielib: 主要作用是提供可存储cookie的对象
- socket: 套接字相关模块,处于网路的传输层
- getopt: 命令行参数解析
- configparser: 配置文件操作的模块
- re: 正则表达式
- itertools: 产生不同类型迭代器
- logging: 日志模块
- tkinter: 一个窗口模块
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的随机符点数 |
path | 搜索模块的路径(列表) |
version_info.major | python版本 |
getsizeof(name) | 返回 name 变量的内存使用量 |
文件/目录相关 | |
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() | 终止当前进程 |
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(): 设置线程名
- __init__(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None):
- class Lock: 线程锁
- acquire([blocking]): 上锁, 返回布尔值 是否成功上锁
- blocking: 若为True(默认), 则线程阻塞, 若为 False则不会阻塞
- release(): 释放锁
- acquire([blocking]): 上锁, 返回布尔值 是否成功上锁
dump(data,file) | data是待存储的数据对象,file是目标存储的文件对象(要用'wb'的模式open文件) |
load(file) | 将二进制文件转换成对象(要用'rb'的模式open文件) |
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() 更有用。 |
ctime([secs]) | 作用相当于 asctime(localtime(secs)),未给参数相当于 asctime() |
daylight | 如果夏令时被定义,则该值为非零。 |
gmtime([secs]) | 接收时间辍(1970 纪元年后经过的浮点秒数)并返回格林威治天文时间下的时间元组 t(注: t.tm_isdst 始终为 0) |
localtime([secs]) |
接收时间辍(1970 纪元年后经过的浮点秒数)并返回当地时间下的时间元组 t(t.tm_isdst 可取 0 或 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 异常。
|
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): 添加提交信息
- __init__(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)
- HTTPCookieProcessor(cookiejar): 用来处理cookie, 返回一个 HTTPCookieProcessor 类
- build_opener(handlers): 创建一个opener对象
- handlers: 可以时cookie,代理等, cookie需要使用HTTPCookieProcessor(处理)
- class opener: urlopen()方法是它的一个实现,用于打开链接
- open(Request): 使用Request类打开链接
- urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None): 打开一个url链接, 链接成功返回一个HTTPResponse类
- 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从文件中取出
- save(filename=None, ignore_discard=False, ignore_expires=False): 将cookie保存到filename文件中
- 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连接
- family: 套接字所属协议
- 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(): 关闭套接字连接
- connect(address): 连接到远程服务器, 一般在tcp连接时使用
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(): 退出
- class Tk: 是一个顶层窗口
- 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(左对齐)等
- pack([side, padx, padxy, anchor, fill]): 将设置提交, 无参时自动调节组件的尺寸位置
- 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的内容
- class Listbox: