目录
1、批量创建文件夹
2、创建多个层级目录
3、当前路径下创建多个层级目录
4、创建文件
5、文件整理
6、os.scandir获取文件名、文件路径、判断是否文件夹
7、层级搜索
8、获取指定路
import os
import shutil
# 创建单个文件夹
# os.mkdir("text")
# 创建多个文件夹
# d_list=['a','b','c']
# for i in d_list:
# os.makedirs(i)
# 判断路径是否存在
# print(os.path.exists('text'))
# 如果不存在就创建
# if not os.path.exists('text'):
# os.mkdir('text')
# 路径拼接
# print(os.path.join('D:\python\办公自动化\自动发送邮件', "demo.py", )) # D:\python\办公自动化\自动发送邮件\demo.py
# print(os.path.join('D:\python\办公自动化\自动发送邮件', "案例", "demo.py", )) # D:\python\办公自动化\自动发送邮件\案例\demo.py
# 获取当前路径下的所有文件
# print(os.listdir('D:\python\办公自动化\自动发送邮件')) # ['python登入.py']
# 获取当前路径下的所有文件和文件夹,可返回文件名,路径,是否文件夹
# for file in os.scandir(r"D:\demo"):
# print(file.name, file.path, file.is_dir())
# if file.is_dir():
# pass
# else:
# print(file.name)
# 删除文件
# os.remove('text.py')
# 删除空文件夹
# os.rmdir('text')
# 删除非空文件夹
# shutil.rmtree('text')
# 复制、移动
# 移动文件shutil.move(源文件路径,目标文件路径)
# shutil.move(r"D:\python\办公自动化\自动发送邮件\text.py","D:\python\办公自动化")
# 复制文件 shutil.copy(源文件路径,目标文件路径) copyfile功能一样
# shutil.copy(r"D:\python\办公自动化\text.py",r"D:\python\办公自动化\自动发送邮件\text.py")
# shutil.copyfile(r"D:\python\办公自动化\text.py",r"D:\python\办公自动化\自动发送邮件\text.py")
# 复制文件夹
# shutil.copytree(r"D:\python\办公自动化\text",r"D:\python\办公自动化\自动发送邮件\text")
# 修改文件
# os.rename('原名称',"新名称")
import os
file = r"C:\Users\Administrator\Desktop\测试"
name = ['城北','城东','城南','城西','红光','红岭','黄排','蕉田','金光','莲花','南湖',
'青云','泰园','园岭','湖榕','惠园','福田','华侨城','百丘田','陈塘','碧山','光明','坣陂','三联','六德']
for i in name:
if not os.path.exists(file + "/" + str(i)):
os.mkdir(file + "/" + str(i)) # 指定路径
else:
print('文件夹已存在')
import os
file = r"C:\Users\Administrator\Desktop\测试"
if not os.path.exists(file + "/" + '1/2/3/4/5/6/7/8'):
os.makedirs(file + "/" + '1/2/3/4/5/6/7/8')
print('创建成功')
else:
print('目标路径已存在')
os.path.dirname(__file__) # 当前文件的文件夹
import os
start_path = os.path.dirname(__file__) # 当前文件的文件夹
target_path = os.path.join(start_path,'demo1/demo2/demo3')
print(target_path)
if not os.path.exists(target_path):
os.makedirs(target_path)
print('创建成功')
else:
print('目标路径已存在')
import os
name_list = ['杨幂',"杨迪",'杨紫','杨洋']
file = r"C:\Users\Administrator\Desktop\测试"
for name in name_list:
file_name = file + "/" + name + ".text"
with open(file_name,"w",encoding='utf-8') as f1:
f1.write(name)
根据后缀整理文件到相应的文件夹中
import os
import shutil
def move_file(type_file):
# 原路径
old_path = os.path.join(base_path, filename) # C:\Users\Administrator\Desktop\测试\bbb.mp4
# 目标路径
new_path = os.path.join(base_path, type_file, filename) # C:\Users\Administrator\Desktop\测试\视频
# 移动文件
shutil.move(old_path, new_path)
# 待处理的文件路径
base_path = r"C:\Users\Administrator\Desktop\测试"
# 准备存放文件的文件夹
list1= ['视频','Excel',]
for name in list1:
# 路径拼接
path = os.path.join(base_path,name)
# 文件夹创建
if not os.path.exists(path):
os.mkdir(path)
else:
print('文件夹已存在')
# 处理文件
# 获取当前路径下的所有文件
file_list = os.listdir(base_path)
# 循环所有文件
for filename in file_list:
# 过滤不需要的文件夹,不要文件夹的文件
if filename not in list1:
src_type = filename.split('.')[-1]
if src_type == "mp4":
move_file('视频')
elif src_type == "xlsx" or src_type == "xls":
move_file('Excel')
else:
pass
import os
for file in os.scandir(r"D:\demo"):
print(file.name, file.path, file.is_dir()) # os.is_dir()是文件夹
if file.is_dir():
pass
else:
print(file.name)
glob.glob
import glob
path = r"D:\demo\层级"
# 同层级搜索
for file in glob.glob(path + "/*"):
print(file)
# 多层级搜索
for file in glob.glob(path + "/**",recursive=True):
print(file)
os.path.expanduser
os.path.join(os.path.expanduser("~"),"Desktop") # 获取桌面路径
os.path.join(os.path.expanduser("~"),"Desktop/text") # 获取桌面text文件夹路径
os.path.join(os.path.expanduser("~"),"Desktop/demo.xlsx") # 获取桌面demo.xlsx路径