python07
__init__.py
from . import p1
from . import p2 # 理解:import p2 先导入 p2 文件, 然后该文件的内容全要 from .
#
# 告诉调用者,哪些文件需要使用
p1.py
def sum(a,b):print(a + b)
p2.py
def max(a,b):if a > b:print(a)else:print(b)
py04.py
# 导入py的文件夹,文件夹中的init文件说明了要导出的是p1和p2 两个文件,只需要导py文件夹即可
import pypy.p1.sum(1,6)py.p2.max(9,2)
py70.py
def sum(a,b):print(a + b)
def max(a,b):if a > b:print(a)else:print(b)
py72.py
# # 部分导入
# from py70 import sum
# sum(1,5)# 给python文件起名字的时候,千万不要使用关键字,因为程序会优先寻找你文件夹中的这个文件,再去找系统的包
import random
ran1 = random.randint(1,10)
print(ran1)
py73.py
def fn1():print(__name__)
# 自己文件中打印__name__ 结果是__main__fn1()
py74.py
import py73 as p73p73.fn1() # 其他文件调用后,结果就是这个文件的名字
75.文件读写
# 方法1 不推荐使用,繁琐
# open("./1.txt",) # ./和不写,都代表从当前文件目录去找内容
# "r" 读取 encoding="utf8" 设置中文编码(国际编码)让中文可以正常显示
file1 = open(r".\1.txt","r",encoding="utf8")
print(file1.read())
file1.close() # 写了open 最后就要写close关闭文件
# 方法2 强烈推荐使用 系统自带close
with open(r".\1.txt","r",encoding="utf8") as file1:data = file1.read()
print(data)
76写入文件:
# # 向文件中写入内容 "w" 代表写入(覆盖)
# # "a" 代表 追加写入
# with open(r"./2.txt","w",encoding="utf8") as file1:
# file1.write("外星人你好,我是AI钢铁侠,请问你来自哪里")# 如果文件存在,就是进行写入,如果文件不存在,新建文件,再写入 会把原来的内容写入(覆盖写入)
with open(r"./4.txt","w",encoding="utf8") as file1:file1.write("外星人你好,我是AI钢铁侠,请问你来自哪里!")# 如果文件存在,"a" 代表 追加写入 不存在就是新建文件然后再写入
with open(r"./4.txt","a",encoding="utf8") as file1:file1.write("--你好新同学")with open(r"./4.txt","w",encoding="utf8") as file1:file1.write("-------------- hello world ------------------")# 练习1 改写文件中的内容 1.txt有python 改成c
# 1.读取1.txt内容
with open(r"./1.txt","r",encoding="utf8") as file1:data = file1.read() # 读取内容存到data变量中# print(data)data = data.replace("python","c") # 修改完毕后的值 把文件中的python替换为c# print(data)
with open(r"./1.txt","w",encoding="utf8") as file2:file2.write(data)# 练习2 合并文件:1.txt 和 2.txt 合并到 66.txt
# 1.读取两个文件的内容
with open(r"./1.txt","r",encoding="utf8") as file1:data_1 = file1.read()with open(r"./2.txt","r",encoding="utf8") as file2:data_2 = file2.read()# 两个文件的内容合并
with open(r"./66.txt","a",encoding="utf8") as file3:# 读取的内容是字符串类型,只需要进行加法即可file3.write(data_1 + data_2)
77按行读取:
# with open(r"./1.txt","r",encoding="utf8") as file1:
# # 因为我想一行一行读取,把代码写在while死循环中,读到最后位置了,我再让循环退出
# while 1:
# txt = file1.readline() # 一行一行读取
# if txt == "": #读到最后位置
# break # 后续不用操作了,直接break彻底退出
# else:
# print(txt,end="") # print自带换行,加end=""取消# with open(r"./1.txt","r",encoding="utf8") as file1:
# while 1:
# txt = file1.readline()
# if txt == "":
# break
# else:
# print(txt,end="")# 练习 读取一个文件的偶数行
with open(r"./66.txt","r",encoding="utf8") as file1:num = 0 # 计数器while 1:txt = file1.readline()if txt == "":breakelse:# 计数器加1num += 1# 偶数才行if num % 2 == 0:print(txt,end="")# 练习2 读取一个文件的奇数行
with open(r"./66.txt","r",encoding="utf8") as file2:num = 0while 1:txt = file2.readline()if txt == "":breakelse:num += 1if num % 2 == 1:print(txt,end="")
78读取json文件
import json # 导入json包
with open(r"./json01.json","r",encoding="utf8") as file_json:data = json.load(file_json) # json.load() 读取json的数据 括号里面是 重命名后的file_json文件print(data)
print(type(data)) # json数据读取到python中,类型就是dict字典类型
json01.json
{"name": "李老师", "age": 20, "isMan": true, "scholl": null, "address": {"country": "中国", "city": "山东", "street": "丰台"}, "score": [82, 88, 100], "link": [{"name": "en_mobile", "url": "www.baidu.com"}, {"name": "en_pc", "url": "www.taobao.com"}], "hehe": "呵呵", "haha": "哈哈"}
79写入json
# import json
# # 准备dict字典数据
# data = {
# "name":"张三",
# "age":18,
# "addr":"北京"
# }
#
# with open(r"./my.json","w",encoding="utf8") as file_json:
# json.dump(data,file_json,ensure_ascii=False)
# # ensure_ascii=False 让中文正常显示,不写就会当做unicode码展示import json
# 绝对路径:(相对于电脑的) 具体在电脑哪个文件夹下 E:\QHMS\python\07\代码\json01.json# 相对路径:根据当前文件去寻找其他文件的方式,叫 相对路径查找(相对路径是相对文件自己的)如下:
# 上级 ./ 当前目录 ../ 上一级目录 ../../ 上两级目录
# 下级 文件夹1/文件夹2
# 文件路径 读 国际码
with open(r"E:\QHMS\python\07\代码\json01.json","r",encoding="utf8") as file_json:json_data = json.load(file_json)print(json_data["address"]) # 拿字典类型数据的语法规则来使用json_data["age"] = 20 # 修改键值json_data["address"]["city"] = "山东" # 修改键值json_data["haha"] = "哈哈" # 原数据中没有这个键名,就相当于新增了一个键和值with open(r"./json01.json","w",encoding="utf8") as file_json2:json.dump(json_data,file_json2,ensure_ascii=False) # json.dump("要写入的数据", "起别名后的文件名", ensure_ascii=False)
my.json
{"name": "张三", "age": 18, "addr": "北京"}