os模块
与操作系统交互,控制文件/文件夹
使用方法
import os
对文件操作
判断是否为文件
res = os.path.isfile(r'') print(res)
删除文件
os.remove(r'')
重命名文件
os.rename(r'',r'')
对文件夹操作
判断是否为文件夹
os.path.isdir()
创建文件夹
if not os.path.exists(r''): os.mkdir(r'')
删除文件夹
os.rmdir(r'')
列出文件夹内所有的文件(重点)
res = os.listdir(r'') print(res)
辅助性的
当前文件的所在文件夹
res = os.getcwd() print(res)
当前文件所在的具体路径
# __file__ 是pycharm独有的 print('__file__:',__file__) res = os.path.abspath(__file__) # 根据不同的擦欧洲哦系统,更换不同的/或\ print(res)
文件的文件夹
res = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) print(res)
拼接文件路径
res = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'img', 'test.jpg') print(res)
判断路径是否存在(文件or文件夹都适用)
res = os.path.exists(r'') print(res)
执行终端代码
res = os.system('dir') print(res)
sys模块
与python解释器交互
使用方法
import sys
最常用。当使用命令行式运行文件,接受多余的参数
res = sys.argv print(res)
拿到当前导入的模块
print(sys.modules.keys())
了解
print(sys.api_version) print(sys.copyright) print(sys.version) print(sys.hexversion)
json模块
跨平台数据交互,json串
序列化
按照特定的规则排列(json串--》跨平台交互,传输数据)
res = json.dumps()
反序列化
按照特定的规则把json串转换成python/java/c/php需要的数据类型
res = json.loads()
具体使用
# 序列化字典为json串,并保存文件 import json def dic(): print('func') with open('test.json', 'w', encoding='utf8') as fw: json.dump(dic, fw) # 反序列化 with open('test.json', 'r', encoding='utf8') as fr: data = json.load(fr) print(type(data), data)
pickle模块
不跨平台,针对python所有数据类型,如集合,使用方式和json一模一样
import pickle def func(): # 针对地址而言,只存了一个函数名 print('func') with open('test.pkl','wb') as fw: pickle.dump(func,fw) ######################### def func(): print('lksjdfkljskldfjlksjdlk') with open('test.pkl', 'rb') as fr: data = pickle.load(fr) print(type(data), data) data() # func()
logging模块
日志模块
import logging
日志级别
import logging #日志级别(如果不设置,默认显示30以上) #v1 logging.info('info') # 10 logging.debug('debug') # 20 logging.warning('wraning') # 30 logging.error('error') # 40 logging.critical('critical') # 50
添加设置
# v2-->添加设置 logging.basicConfig(filename='20190927.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', level=10) username = 'nick' goods = 'bianxingjingang' logging.info(f'{username}购物{goods}成功') # 10
自定义配置
配置logger对象
nick_logger = logging.Logger('nick') json_logger = logging.Logger('jason')
配置格式
formmater1 = logging.Formatter('%(asctime)s - %(name)s -%(thread)d - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p ', ) formmater2 = logging.Formatter('%(asctime)s : %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', ) formmater3 = logging.Formatter('%(name)s %(message)s', )
配置handler
往文件打印or终端打印
h1 = logging.FileHandler('nick.log') h2 = logging.FileHandler('json.log') sm = logging.StreamHandler()
给handler配置格式
h1.setFormatter(formmater1) h2.setFormatter(formmater2) sm.setFormatter(formmater3)
把handler绑定给logger对象
nick_logger.addHandler(h1) nick_logger.addHandler(sm) json_logger.addHandler(h2)
直接使用
nick_logger.info(f'nick 购买 变形金刚 4个')