python操作文件(办公自动化)

目录

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('原名称',"新名称")

1、批量创建文件夹

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('文件夹已存在')

2、创建多个层级目录

python操作文件(办公自动化)_第1张图片

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('目标路径已存在')

3、当前路径下创建多个层级目录

python操作文件(办公自动化)_第2张图片

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('目标路径已存在')

4、创建文件

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)

5、文件整理

根据后缀整理文件到相应的文件夹中

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

6、os.scandir获取文件名、文件路径、判断是否文件夹

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)

7、层级搜索

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)

8、获取指定路径

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路径

你可能感兴趣的:(python)