【python】批量修改文件夹名以及文件名,同时对路径下文件夹内的文件内容进行检索

文件夹名字修改前

在这里插入图片描述
在这里插入图片描述

文件夹名字修改后效果

在这里插入图片描述
在这里插入图片描述

检索结束

在这里插入图片描述

代码

  • 批量修改名字 “rename_file.py”
# -*- coding: utf-8 -*-
import os

# 设定文件路径
path1 = './test/'

i = 1
# 对目录下的文件进行遍历
for category in os.listdir(path1):
    # 设置新文件夹名
    folder_name = 'FreshOffTheBoat_' + str(i)
    folder_path = os.path.join(path1, folder_name)
    # if not os.path.exists(folder_path):
    # 重命名
    os.rename(os.path.join(path1, category), folder_path)

    file_path = folder_path + '/'
    j = 1
    # 对目录下的文件进行遍历
    for file in os.listdir(file_path):
        # print(file)
        # 判断是否是文件
        # if os.path.isfile(os.path.join(file_path, file)):
        # 设置新文件名
        file_name = 'FreshOffTheBoat_' + str(i) + '_' + str(j) + '.txt'
        # 重命名
        new_file_name = os.path.join(file_path, file_name)
        os.rename(os.path.join(file_path, file), new_file_name)
        print(new_file_name)
        j += 1

    i += 1

# 结束
print("End")




  • 检索文件demo “find.py”
import re

a = ["黄家","连锁店"]
num = [0]*len(a)
with open("./test/FreshOffTheBoat_1/FreshOffTheBoat_1_1.txt", "r", encoding="UTF-16") as f:
    my_str = f.read()
    my_list = my_str.split('>')
    #my_list = my_list.split(':')
    for line in my_list:
        print(line)
        # print(type(line))
        # print("line:", line)
        for i in range(len(a)):
            if line.find(a[i]) >=0 :
                # print(line)
                num[i] += 1

print(f"'{a[0]}'出现的次数有{num[0]}次")
print(f"'{a[1]}'出现的次数有{num[1]}次")


  • 检索文件最终版 “main.py”

import os
import codecs

a = ['春节', '皮蛋', '书法']
num = [0]*len(a)

# 设定文件路径
path1 = './test/'

# 对目录下的文件进行遍历
for category in os.listdir(path1):
    dir_path = path1 + category + '/'
    # 对目录下的文件进行遍历
    for file in os.listdir(dir_path):
        file_path = dir_path + file
        with open(file_path, "r", encoding="UTF-8") as f:
            count = 0
            my_str = f.read()
            my_list = my_str.split('>')
            my_list = str(my_list)
            my_list = my_list.split(':')
            for line in my_list:
                for i in range(len(a)):
                    if line.find(a[i]) >= 0:
                        num[i] += 1
                        count += 1
                        print("在{}文件{}一句中找到检索词'{}'".format(file, line, a[i]))
                        print('\n')
            print("---------------------完成对{}检索-----------------------".format(file_path))
            print('\n')
print("已完成所有文件检索!")
print('\n')
for i in range(len(a)):
    print(f"'{a[i]}'出现的总次数:{num[i]}次")
print("End")




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值