【python基础语法】模块和包管理,文件的操作(第8天课堂笔记)
''' 模块和包管理 模块和包的定义: 模块:模块是一个Python文件,以.py结尾,包含了Python对象定义和Python语句 包:Python中的包就是一个包含__init__.py文件的目录(文件夹) 为什么代码会有浅色的波浪线和红色的波浪线? 浅色的波浪线:pycharm检测你的这行代码不符合pep8规范(官方给出的编码规范) 红色的波浪线:pycharm检测到这行代码语法有问题,或者变量找不到(没有被定义) 模块的作用: 模块让你能够有逻辑地组织你的Python代码段 把相关的功能代码写到一个模块里能让你的代码更好用,更易懂 模块能定义函数,类和变量,模块里也能包含可执行的代码 分层设计:方便管理和维护和修改代码 打开文件:open(文件名,打开的模式(r,a,w),encoding=编码方式) r模式:读 a模式:写入,无法读取内容,追加写入(在文件内容的结尾处写入) w模式:写入,无法读取内容(覆盖文件中原来的内容) r模式 打开不存在的文件会报错 a,w模式打开文件,如果文件不存在,则会自动创建一个 文件读取的三种方式: # read() # readline() # readlines按行读取所有的内容,每一行内容当成一个元素,放到一个列表中(最后返回的是一个列表) 以字节流模式打开文件(图片、视频等格式的文件) 以文件上下文管理器打开文件:with关键字 举例: with open("data.txt","r",encoding="utf8") as f: c = f.read() print(c) ''' # test01文件内容 import random a = 100 num = 200 def work(): print("test01中的work函数") # 魔法变量:__name__: # print("__name__的值:",__name__) # 在模块导入的时候不希望执行的代码给与隐藏 if __name__ == "__main__": num = random.random() print(num) # 模块导入 # 方式一:导入整个模块 import test01 # 方式二、导入模块中的部分内容 from test01 import a print(a) # 这个波浪线并不是代码写错了,pycharm识别不出我们自定义的这个模块 from test01 import work work() # 扩展 # 通过as给导入进来的方法或者变量重新起个名字(别名) # work也可以被叫做w1,如果两个方法或者函数名有重名的时候可以使用as,不然导入的数据会被覆盖掉 from test01 import work as w1 w1() # 同时导入模块中的多个方法和函数和变量 from test01 import a,work,num print(a) print(num) # 导入模块中所有的内容(不推荐使用) from test01 import * print(a) print(num) work() # 包导入 # from 包名 import 模块名 # from 包名.模块名 import 模块中的变量或方法 # from pack01 import module1 module1.m_func1() print(module1.aa) print(module1.bb) from pack01.module1 import aa,bb print(aa) print(bb) # 剥洋葱 from pack01.ppp import p_m1 print(p_m1.aa) print(p_m1.bb) # from pack01.ppp.p_m1 import 变量或者方法 from pack01.ppp.p_m1 import aa,bb print(aa) print(bb) # r模式 # 如何在python中去打开一个文件 # 打开文件 # 读取文件中的内容 f = open("data.txt","r",encoding="utf8") data = f.read() print(data) # a模式 # 写入内容,在文件末尾追加内容 f = open("data.txt","a",encoding="utf8") # # 写入方法write:参数:必须是字符串格式 f.write("python23期666") # # 写入方法writelines:参数:列表 f.writelines(["111","222","333"]) # w模式 f = open("data1.txt","w",encoding="utf8") # # 读取文件中的内容 f.write("python66622") # # 关闭文件 f.close() # 文件读取的三种方式 f = open("data1.txt","r",encoding="utf8") # read():读取文件中所有的内容 content = f.read() print(content) # readline():读取一行内容 res = f.readline() print(res) # readlines按行读取所有的内容,每一行内容当成一个元素,放到一个列表中(最后返回的是一个列表) datas = f.readlines() print(datas) # 关闭文件 f.close() # 以字节流方式打开数据,下载图片,或者爬虫方式下载图片 f = open("bj01.png","rb") c = f.read() print(c) # 通过上下文管理器with去操作文件,不用手动关闭文件,会自动关闭 with open("data.txt","r",encoding="utf8") as f: c = f.read() print(c) # 复制文件操作 with open("nmb_2020_02_27.py","r",encoding="utf8") as f: c = f.read() with open("copy01.py","w",encoding="utf8") as fw: fw.write(c) # 自动化测试主要要做的是:逻辑的处理和格式的处理