目录
os
1. 获取当前脚本绝对路径
2.获得工作路径;
3.该路径文件和目录
4.walk,查看目录下所有的文件(含子孙文件)
5.创建文件夹
6.os.makedirs(path)
7.路径拼接
8. 获取当前文件的上级目录
9.判断路径是否存在
10.是否是文件夹
11.进程管理
12.删除空文件夹
13.删除文件
14.查看状态
15.删除非空文件
16.遍历文件
shutil
复制文件:
复制文件并保留元数据:
移动文件:
删除目录及其内容:
创建压缩包:
解压压缩包:
获取磁盘使用情况:
os
1. 获取当前脚本绝对路径
abs_path = os.path.abspath(__file__)
print(abs_path)
2.获得工作路径;
os.getcwd()
3.该路径文件和目录
data = os.listdir("/Users/wupeiqi/PycharmProjects/luffyCourse/day14/commons")
print(data)
4.walk,查看目录下所有的文件(含子孙文件)
import os
path = r"E:\桌面\计算机\全栈\django\django项目\untitled1"for path,dirs,files in os.walk(path):print(path)print(dirs)print(files)print("")
5.创建文件夹
os.mkdir(path)
含义:传入一个path路径,创建单层(单个)文件夹;
注意:如果文件夹已经存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;
os.getcwd()
path1 = os.getcwd()+“\yan”
os.mkdir(path1)
6.os.makedirs(path)
含义:传入一个path路径,生成一个递归的文件夹;
注意:如果文件夹存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;
path = os.path.join(path1, 'xx', 'oo', 'uuuu')
if not os.path.exists(path):os.makedirs(path)
7.路径拼接
p1 = os.path.join(base_path, 'xx')
print(p1)p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')
print(p2)
8. 获取当前文件的上级目录
base_path = os.path.dirname( os.path.dirname(路径) )
print(base_path)
9.判断路径是否存在
exists = os.path.exists(p1)
print(exists)
10.是否是文件夹
file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')
is_dir = os.path.isdir(file_path)
print(is_dir) # Falsefolder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
is_dir = os.path.isdir(folder_path)
print(is_dir) # True
11.进程管理
os.system(command): 运行 shell 命令并返回命令的退出状态码。
os.startfile(path[, operation]): 在 Windows 上,此函数可以打开文件或运行程序。
python复制
# 运行 shell 命令
exit_code = os.system('echo Hello, World!')# 在 Windows 上打开一个文件
os.startfile('C:\\path\\to\\file.txt')
12.删除空文件夹
os.rmdir(folder_path)
# 删除空文件夹
folder_path = 'empty_folder'
try:os.rmdir(folder_path)print(f"文件夹 {folder_path} 已被删除。")
except OSError as e:print(f"删除空文件夹时出错: {e}")
13.删除文件
import os
# 删除文件
file_path = 'example.txt'
try:os.remove(file_path) # 或者使用 os.unlink(file_path)print(f"文件 {file_path} 已被删除。")
except OSError as e:print(f"删除文件时出错: {e}")
14.查看状态
import os# 使用双反斜杠避免路径中的转义问题stat_info = os.stat('E:\\桌面\\计算机\\全栈\\django\\django项目\\untitled1\\ll.py')print(stat_info)
15.删除非空文件
# 删除非空文件夹
non_empty_folder_path = 'non_empty_folder'
try:shutil.rmtree(non_empty_folder_path)print(f"非空文件夹 {non_empty_folder_path} 已被删除。")
except OSError as e:print(f"删除非空文件夹时出错: {e}")
16.遍历文件
data = os.walk("/Users/wupeiqi/Documents")
for path, folder_list, file_list in data:for file_name in file_list:file_abs_path = os.path.join(path, file_name)ext = file_abs_path.rsplit(".",1)[-1]if ext == "mp4":print(file_abs_path)
里面涉及到了shutil模块,我们下面细讲
shutil
-
复制文件:
python复制
import shutil# 将文件 'example.txt' 复制到当前目录
shutil.copy('example.txt', '.')
-
复制文件并保留元数据:
python复制
import shutil# 将文件 'example.txt' 复制到 'copy_example.txt',并保留元数据
shutil.copy2('example.txt', 'copy_example.txt')
-
移动文件:
python复制
import shutil# 将文件 'example.txt' 移动到 'new_folder' 目录
shutil.move('example.txt', 'new_folder/example.txt')
-
删除目录及其内容:
python复制
import shutil# 删除 'old_folder' 目录及其所有内容
shutil.rmtree('old_folder')
-
创建压缩包:
python
import shutil# 创建一个名为 'archive.zip' 的压缩包,包含 'folder_to_zip' 目录的内容
shutil.make_archive('archive', 'zip', 'folder_to_zip')
-
解压压缩包:
python
import shutil# 解压 'archive.zip' 到当前目录
shutil.unpack_archive('archive.zip', '.')
-
获取磁盘使用情况:
python复制
import shutil# 获取当前目录的磁盘使用情况
usage = shutil.disk_usage('.')
print(f"Total: {usage.total}, Used: {usage.used}, Free: {usage.free}")