什么是模块,包,其有什么区别
一个py文件就是一个模块,包是有多个模块或者子包组成,包内一定会有__init__.py文件
Python 解释器是如何查找包和模块的
- 当前目录
- 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
- 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
import 和 from…import…的区别
- from … import …或from … import *导入多个模块的时候,且模块内有同名资源,会造成资源冲突,后导入的会覆盖前面导入的
- import 模块名会把模块中的所有资源导入进来,更耗内存,但不会引起资源冲突
模块中__all__的作用
如果一个模块文件中有__all__变量,仅当使用from xxx import *导入时,只能导入这个列表中的元素。
包中__init__的作用
这个文件控制着包的导入行为
python内置模块和包
https://www.cnblogs.com/lweiser/p/11020507.html
1、time
# import time # 导入time模块
# # 获取时间戳
# print(time.time())
#
# # 等待2秒
# time.sleep(2)
#
# print(time.time())
2、 os
import os
# 与操作系统中的文件进行交互
# 判断tank.txt文件是否存在
# print(os.path.exists('tank.txt')) # True
# print(os.path.exists('tank1.txt')) # False
# print(os.path.exists(r'D:\python_files\day03\tank.txt')) # True
#
# # 获取当前文件的根目录
# print(os.path.dirname(__file__)) # D:/python_files/day03
3、 sys
import sys
# 获取python在环境变量中的文件路径
# print(sys.path)
# # 把项目的根目录添加到环境变量中
# sys.path.append(os.path.dirname(__file__))
# print(sys.path)
4、 json
import json
# user_info = {
# 'name': 'tank',
# 'pwd': '123'
# }
5、 dumps: 序列化
# 1、把字典转行成json数据
# 2、再把json数据转换成字符串
# res = json.dumps(user_info)
# print(res)
# print(type(res))
#
# with open('user.json', 'wt', encoding='utf-8') as f:
# f.write(res)
6、 loads: 反序列化
# json.loads()
# 1、把json文件的数据读到内存中
# with open('user.json', 'r', encoding='utf-8') as f:
# # 读取得到的是字符串
# res = f.read()
# # print(type(res))
# # loads把json格式的字符串转换成dict类型
# user_dict = json.loads(res)
# print(user_dict) # {'name': 'tank', 'pwd': '123'}
# print(type(user_dict)) # <class 'dict'>
7、dump
# user_info = {
# 'name': 'tank',
# 'pwd': '123'
# }
# with open('user_info.json', 'w', encoding='utf-8') as f:
# # str1 = json.dumps(user_info)
# # f.write(str1)
# # dump: 自动触发f.write方法
# json.dump(user_info, f)
8、load
with open('user_info.json', 'r', encoding='utf-8') as f:
# res = f.read()
# user_dict = json.loads(res)
# print(user_dict)
# load:自动触发f.read()
user_dict = json.load(f)
print(user_dict)