Python 常用系统模块整理
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:
Python 常用系统模块整理的更多相关文章
- python 常用的模块
面试的过程中经常被问到使用过那些python模块,然后我大脑就出现了一片空白各种模块一顿说,其实一点顺序也没有然后给面试官造成的印象就是自己是否真实的用到这些模块,所以总结下自己实际工作中常用的模块: ...
- 第四章:4.0 python常用的模块
1.模块.包和相关语法 使用模块好处: 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Pyt ...
- python常用小模块使用汇总
在写代码过程中常用到一些好用的小模块,现整理汇总一下: 1.获取当前的文件名和目录名,并添到系统环境变量中. file = os.path.abspath(__file__) ...
- Day6 Python常用的模块
一.logging模块 一.日志级别 critical=50 error=40 waring=30 info=20 debug=10 notset=0 二.默认的日志级别是waring(30),默认的 ...
- Python常用的模块
模块,模块就是封装了特殊功能的代码. 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.自定义模块 2.模块的导入 python有大量的模块可以使用,再使用之前我们只需要导入模块就可以 ...
- python常用sys模块
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 sys.exc_info() 获取当前正在处理的异常类,exc_typ ...
- python 常用第三方模块
除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在https://pypi.python.org/pypi上注册,只要找到对应的模块名字,即可用pip安装. 本章介绍 ...
- [转] Python 常用第三方模块 及PIL介绍
原文地址 除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip ...
- python常用os模块
OS 模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...
随机推荐
- 《响应式Web设计实践》学习笔记
原书: 响应式Web设计实践 目录: 第2章 流动布局 1. 布局选项 2. 字体大小 3. 网格布局 4. 混合固定宽度和流动宽度 第3章 媒介查询 1. 视口 2. 媒介查询结构 3. 内嵌样式与 ...
- Android 流媒体技术见解
一.技术关键点 1. 音频采集:设置合理的采样参数,包括采样率.通道数.采样深度. 2. 视频采集:手机摄像头采集输出的格式(NV12/NV21/YV12),要注意相互间的转换,以及采集出来图像的方向 ...
- Javascript高级编程学习笔记(31)—— BOM(5)screen、history对象
screen对象 screen对象应该是BOM对象中最不常用的对象了 其主要用于提供客户端的显示能力信息 包括浏览器外部显示的信息,和像素的宽高等 这个对象的主要用于检测客户端能力,一般不会影响功能 ...
- Django项目添加应用路径
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
- OAuth2简易实战(二)-模拟客户端调用
1. OAuth2简易实战(二) 1.1. 目标 模拟客户端获取第三方授权,并调用第三方接口 1.2. 代码 1.2.1. 核心流程 逻辑就是从数据库读取用户信息,封装成UserDetails对象,该 ...
- 访问iis 出现500.19错误
解决方案: 原因是asp应用程序没有打开,于是就在控制面板--程序---打开和关闭windows功能---internet信息服务----万维网服务------应用程序开发功能中选中全部 可能接下来会 ...
- android用OkHttp和okio包通信的坑--气死我了
今天新建了个项目,想要用用okhttp包来实现Android和tomcat的通信, 于是就根据记忆,把以前可以用的代码复制过来了,然后呢,出现这个.... 图有点大,不知到怎么调小 很莫名其妙,我看了 ...
- 基于Electron+.NET Core的前后端分离的跨平台桌面应用
Web做界面比原生桌面界面开发速度真心要快很多,而且组件也多. 分析: 1..NET Core和Electron都是跨平台的. 2.NET Core做后端很方便,但是没有GUI,Electron做桌面 ...
- Pulsar Consumer实现介绍
Pulsar-Consumer “Pulsar is a distributed pub-sub messaging platform with a very flexible messaging m ...
- 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详细步骤(图文)(博主推荐)
不多说,直接上干货! 前言 建议参照最新的tensorflow安装步骤(Linux,官方网站经常访问不是很稳定,所以给了一个github的地址): https://github.com ...