Python常用模块
os模块主要与操作系统打交道
sys模块主要与解释器打交道
一、OS模块
1.os.mkdir()、os.makedirs()创建目录(文件夹)
import os
os.mkdir(r'dom2') # 相对路径,在执行文件的路径下创建目录 创建单级目录
os.mkdir(r'dom2\demo3\demo4') # 不可以创建多级目录
os.makedirs(r'dom2\demo3') # 可以创建多级目录
os.makedirs(r'demo3') # 也可以创建单级目录
2.rmdir()、removedirs()删除目录
import os
os.rmdir(r'demo4') # 删除单级目录
os.rmdir(r'dom2\demo3\demo4') # 不可以一次性删除多级目录
os.removedirs(r'dom2\demo3') # 可以删除多级目录
3.listdir()列举指定路径下的文件名称(文件/目录)
import os
print(os.listdir()) # ['.idea', 'demo.py', 'dom2', 'dom4']
4.rename()、remove()重命名,删除文件
import os
os.rename(r'a.txt',r'aab.txt') # 重命名
os.remove(r'aab.txt') # 删除
5.os.getcwd()获取当前工作路径
import os
print(os.getcwd()) # 切换上一级目录
print(os.chdir('..')) # 返回当前代码运行所在的目录的上一级
6.abspath()、dirname()动态获取项目的根路径
import os
print(os.path.abspath(__file__)) # 获取执行文件所在的绝对路径
# D:\pythonProject\demo5\demo.py
print(os.path.dirname(__file__)) # 获取执行文件所在的目录文件
# D:/pythonProject/demo5
7.exists()、isfile()、isdir()判断路径是否存在
import os
print(os.path.exists(r'demo.py')) # True 判断文件路径是否存在
print(os.path.isfile(r'a.txt')) # True 判断路径是否为文件
print(os.path.isdir(r'demo.py')) # False 判断路径是否为目录
8.join()路径拼接
import os
s1 = r'D:/pythonProject/demo5'
s2 = r'01.py'
print(os.path.join(s1, s2)) # D:/pythonProject/demo5\01.py
9.getsize获取文件大小
import os
print(os.path.getsize(r'a.txt')) # 0
二、sys模块
1.path()
import sys
print(sys.path) # 获取执行文件的sys.path
# ['D:\\pythonProject\\demo5', 'D:\\pythonProject\\demo5', 'D:\\PyCharm 2021.1.3\\plugins\\python\\helpers\\pycharm_display', 'D:\\Python38\\python38.zip', 'D:\\Python38\\DLLs', 'D:\\Python38\\lib', 'D:\\Python38', 'D:\\Python38\\lib\\site-packages', 'D:\\PyCharm 2021.1.3\\plugins\\python\\helpers\\pycharm_matplotlib_backend']
2.最大递归深度
import sys
print(sys.getrecursionlimit()) # 1000 获取Python解释器默认最大递归深度
sys.setrecursionlimit(2000) # 修改解释器默认最大递归深度
3.version()返回Python解释器的版本信息
import sys
print(sys.version) # 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)]
import sys
print(sys.platform) # win32
5.argv()以列表形式接收参数
import sys
a = sys.argv
b = len(sys.argv)
print(a) # ['D:/pythonProject/demo5/demo.py']
print(b) # 1
三、json模块
1. json模块也称之为序列化模块
2. json模块是不同报错语言之间数据交互必备的模块
3. json格式数据的形式是字符串,引号是双引号
4. json.dumps()和json.loads()的区别
json.dumps()是将一个Python数据类型列表进行格式化编码,将字典转化为字符串
json.loads()是将json格式数据转化为字典,就是将字符串转化为字典
5. json.dump()和json.load()主要用来读写json文件函数
四、作业
1.编写一个统计指定文件类型的脚本工具
输入指定类型的文件后缀
eg:.txt
并给出一个具体路径 之后统计该类型文件在该文件下的个数
ps:简单实现即可 无需优化
解答:
import os
count = 0
abslute_path = input('输入您要统计文件的绝对路径').strip()
path_hou = input('请输入您要指定的文件后缀').strip()
list_file = os.listdir(abslute_path)
print(list_file)
for i in list_file:
if i.endswith(path_hou): # endswith() 方法用于判断字符串是否以指定后缀结尾
count += 1
print(count)
# else:
# print('没有喽')
2.针对json实操 尝试单文件多用户(一行一个)是否可实现>>>:哪个更方便
不要求完成 单纯体会两种思路的难易
解答:
import os
base_path = r'D:\pythonProject\demo5\db'
# base_path = os.path.dirname(__file__)
list_dir = os.listdir(base_path)
for i in list_dir:
print(f'''
------------------
文件:{i}
''')
choice = input('请输入您要打开的文件名').strip()
for i in list_dir:
new_line = os.path.join(base_path,i)
if i == choice:
print(new_line)
# with open(new_line,'r',encoding='utf8') as f:
# print(f.read())