阅读背景:

day16小结

来源:互联网 

1.os 模块

对文件操作

断定是不是为文件

res = os.path.isfile(r"D:\上海python12期视频\python12期视频\day 16

1.os 模块

对文件操作

断定是不是为文件

res = os.path.isfile(r"D:\上海python12期视频\python12期视频\day 16\00 上节课回想.md")
print(res)

删除文件

os.remove(r"文件名")

重命名文件

os.rename(r"原文件名","修正文件名")

对文件夹操作

断定是不是为文件夹

os.path.isdir()

创立文件夹

is not os.path.exists(r"D:\上海python12期视频\python12期视频\test")
    os.mkdir(r"D:\上海python12期视频\python12期视频\test")

删除文件夹

os.rmdir(r"D:\上海python12期视频\python12期视频\test")

列出文件夹内所有文件(****)

res = os.listdir(r"D:\上海python12期视频\python12期视频\test")
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"D:\上海python12期视频\python12期视频\test")
print(res)

尽可能不要写路径

懂得

履行终端代码

rse = os.system("dir")
print(res)

2.sys模块

与python说明器交互

最常常使用,当应用命令行运行文件,接收过剩的参数

import sys


res = sys.argv
print(res)

拿到当前导入的模块

print(sys.modules.keys())

懂得

sys.argv 命令行参数List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已导入的模块列表
sys.exc_info() 获得当前正在处置的异常类,exc_type、exc_value、exc_traceback当前处置的异常详细信息
sys.exit(n) 退出程序,正常退出时exit(0)
sys.hexversion 获得Python说明程序的版本值,16进制格局如:0x020403F0
sys.version 获得Python说明程序的版本信息
sys.maxint 最大的Int值
sys.maxunicode 最大的Unicode值
sys.modules 返回体系导入的模块字段,key是模块名,value是模块
sys.path 返回模块的搜索路径,初始化时应用PYTHONPATH环境变量的值
sys.platform 返回操作体系平台名称
sys.stdout 尺度输出
sys.stdin 尺度输入
sys.stderr 毛病输出
sys.exc_clear() 用来消除当前线程所涌现确当前的或最近的毛病信息
sys.exec_prefix 返回平台独立的python文件安装的地位
sys.byteorder 本地字节规矩的指导器,big-endian平台的值是"big",little-endian平台的值是"little"
sys.copyright 记载python版权相干的东西
sys.api_version 说明器的C的API版本

3.json和pickle模块

json模块: 跨平台数据交流,json串

pickle模块: 不跨平台,针对python所有数据类型,如聚集,应用方法和json如出一辙

序列化: 依照特定的规矩排列(json串-->跨平台交互,传输数据)

反序列化: 依照特定的规矩把json串转换成python/java/c/php 须要的数据类型

懂得序列化和反序列化是甚么

import json

dic = [1,(1,2)]

res = json.jumps(dic)  # json串中没有单引号
print(type(res),res)  # 跨平台数据交互

res = json.loads(res)
print(type(res),res)

------------------------------------------------
dic = {"a": True, "b": None}

# 序列化字典为json串,并保留文件
import json
def dic():
    print("func")
with open("test.json","w", encoding="utf8") as fw:
    json.jump(dic,fw)

反序列化

with open("test.json","r",encoding="utf8") as fr:
    data = json.load(fr)
    print(type(data),data)
    
    
goods = {
    1:"awaw",
}

with open("nick,json", "r", encodingn="utf8") as fr:
    data = json.load(fr)
    data["wawa"]= 1
    data["extra"] -= 10
    data["locked"] = 1
with open("nick.json", "w", encoding="utf8") as fw:
    json.dump(data, fw)

pickle

import pickle  # 未来存对象

def func():  # 针对地址而言,只存了一个函数名
    print("func")
    
with open("test.pkl","wb") as fw:
    pickle.dump(func,fw)
    
    
def func():
    print("asdglaads")
    
with open("test.pkl", "rb") as fr:
    data = pickle.load(fr)
    print(type(data),data)
    data()  # func()

4.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

# v3-->  添加配置

# 1. 配置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", )

# 3.配置handler -->往文件打印or往终端打印

h1 = logging.FileHandler("nick.log")
h2 = logging.FileHandler("json.log")
sm = logging.StreamHandler()

# 4. 给handler配置格局
h1.setFormatter(formmater1)
h2.setFormatter(formmater2)
sm.setFormatter(formmater3)

# 5. 把handler绑定给logger对象
nick_logger.addHandler(h1)
nick_logger.addHandler(sm)
json_logger.addHandler(h2)

# 6. 直接应用
nick_logger.info(f"nick 购置 变形金刚 4个")
# json_logger.info(f"json 购置 变形金刚 10个")


# 记住以上可以全体忘却,只要会下面的cv大法
上节课回想.md") print(res)res = os.path.isfile(r"D



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: