python几种简单方便的文件操作

前言

        本文将简单介绍几种python文件操作的方法,如获取指定文件路径下的文件列表,批量修改指定文件路径下指定文件类型的文件名,批量转移指定文件路径下指定文件类型的文件,批量创建子文件夹。


操作方法

1.引入库

import os

2.获取指定文件路径下的文件列表

import os

path = input("\033[1;36m请输入文件夹路径:\033[0m")  # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
path = path.replace("\\", "/")   # 将路径中的"\"替换为“/”,避免系统误认为转义字符
files = os.listdir(path)
print(files)

3.批量修改指定文件路径下指定文件类型的文件名

import os

path = input("\033[1;36m请输入文件夹路径:\033[0m")  # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
path = path.replace("\\", "/")   # 将路径中的"\"替换为“/”,避免系统误认为转义字符
files = os.listdir(path)
print(files)                # 获取文件列表
change = input("\033[1;36m请输入需要修改的文件类型以及插入内容如“png -备份”:\033[0m")  # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
suffix, add = change.split(" ")  # 拆分 获得目标文件后缀名和插入内容
for old in files:
    if old.rfind(f".{suffix}") != -1:    # 判断是否为目标文件后缀名
        index = old.rfind(f".{suffix}")
        new = old[:index] + add + old[index:]  # 插入内容
        os.rename(path + old, path + new)
files = os.listdir(path)      # 获取修改后的文件列表
print(files)                  # 打印修改后的文件列表

4.批量转移指定文件路径下指定文件类型的文件

import os

path = input("\033[1;36m请输入文件夹路径:\033[0m")  # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
path = path.replace("\\", "/")   # 将路径中的"\"替换为“/”,避免系统误认为转义字符
files = os.listdir(path)
print(files)                # 获取文件列表
change = input("\033[1;36m请输入需要转移的文件类型以及转移路径如“png X:\photo\”:\033[0m")  # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
suffix, path2 = change.split(" ")  # 拆分 获得目标文件后缀名和插入内容
path2 = path2.replace("\\", "/")   # 将路径中的"\"替换为“/”,避免系统误认为转义字符
if not os.path.isdir(path2):  # 判断输入路径是否为有效路径,如果不是就创建出来一个
    os.makedirs(path2)        # 这样只要你路径格式对了就一定能转移
for old in files:
    if old.rfind(f".{suffix}") != -1:      # 判断是否为目标文件后缀名
        old_file = open(path + old, 'rb')  # 读方式打开旧文件
        new = open(path2 + old, 'wb')      # 写方式打开新文件
        new.write(old_file.read())         # 旧文件写入新文件
        old_file.close()                   # 关闭旧文件
        os.remove(path + old)              # 删除旧文件
        new.close()                        # 关闭新文件
files = os.listdir(path2)      # 获取移动后的文件列表
print(files)

5.批量创建子文件夹

import os
path = input("\033[1;36m请输入需要创建的文件夹列表的路径:\033[0m")  # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
path = path.replace("\\", "/")   # 将路径中的"\"替换为“/”,避免系统误认为转义字符
if not os.path.isdir(path):  # 判断输入路径是否为有效路径,
    os.makedirs(path)        # 如果不是就创建出来一个
count = int(input("\033[1;36m请输入需要创建的子文件夹个数:\033[0m")) # 获取路径,引号内为引导用户输入内容的,可自行编辑,这里我用了改变颜色,具体格式为“\033[1;36m”需要改变颜色的字符串“\033[0m”
for i in range(count):
    os.mkdir(path + "/" + f"子文件夹{i + 1}")  # 这里可以进一步循环嵌套

重点

1. 将路径中的"\"替换为“/”,避免系统误认为转义字符

path = path.replace("\\", "/")   # 将路径中的"\"替换为“/”,避免系统误认为转义字符

2.判断输入路径是否为有效路径

if not os.path.isdir(path):  # 判断输入路径是否为有效路径,
    os.makedirs(path)        # 如果不是就创建出来一个

3.拆分输入内容

suffix, add = change.split(" ")  # 拆分 获得目标文件后缀名和插入内容

4.文件名修改

index = old.rfind(f".{suffix}")        # .的下标位置
new = old[:index] + add + old[index:]  # 插入内容 切片
os.rename(path + old, path + new)

5.获取目录列表

# 获取目录列表os.listdir(目录)
print(os.listdir())    # 不放参数,默认获取当前目录

6.删除文件夹

# “删除文件夹”:os.rmdir(文件夹名字)
os.rmdir(path + dir)

7.删除旧文件

os.remove(path + old)  # 删除旧文件

总结
      

           以上就是今天要讲的内容,本文简单介绍了一些常见的文件操作,它能使我们快速便捷地处理文件。

猜你喜欢

转载自blog.csdn.net/weixin_45694843/article/details/124231742