os模块 是和操作系统交互的模块
import os # os.makedirs('dir1/dir2') # 生成多层递归目录 # os.mkdir('dir3') # 生成单级目录 # os.mkdir('dir3/dir4') # 已经存在的不可以创建新文件 # 只能删除空文件 # os.rmdir('dir3') # os.removedirs('dir1/dir2') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 # print(os.stat(r'D:untitled')) # 获取文件目录信息 # os.remove()# 删除一个文件 # os.rename()#重命名一个文件 # os.system() /os.open()是执行字符串数据类型的 命令行代码 # os.system('dir') # 乱码 # ret = os.popen('dir') # 做查看类的操作 # print(ret.read())
import os
print(os.path.abspath(r'D:untitled')) # 把路径中不符合规范的,改成符合操作系统默认的格式 # 能够给能找到的相对路径改成绝对路径
import os
print(os.path.split(r'D:untitled复习练习1.py')) # 把一个路径分割成俩段, 第二段是一个文件/文件夹 得到的是一个元组 print(os.path.dirname(r'D:untitled复习练习1.py'))# D:untitled复习 print(os.path.basename(r'D:untitled复习练习1.py'))# 练习1.py 拿最后一个文件/文件夹 # 如果俩个都需要用 os.path.split # 如果只要一个值 os.path.dirname/os.path.basename
import os
os.path.exists() os.path.isabs() # 判断文件/文件夹是否存在
os.path.getsize() 返回文件/文件夹的大小(单位:字节)
小练习
递归
使用python代码统计一个文件夹中所有文件的总大小 import os def func(path): size_sum = 0 path_file = os.listdir(path) for i in path_file: path_abs = os.path.join(path, i) # 文件绝对路径 if os.path.isdir(path_abs): size = func(path_abs) size_sum += size else: size_sum += os.path.getsize(path_abs) return size_sum print(func(r'D:untitled'))
import os
满足一个顺序 先进来的后出去 lst = [r'D:untitled']# 列表的第一个目录就是要统计的目录 file_sum = 0 while lst: ret = lst.pop() # pop删除最后一个元素并且返回删除后的值 file_name = os.listdir(ret) for name in file_name: file_abs = os.path.join(ret, name) if os.path.isdir(file_abs): # 判断是否是文件夹 lst.append(file_abs) else: file_sum += os.path.getsize(file_abs) print(file_sum)