文件夹处理和排序,编码问题内容

将1文件夹里的每个txt的所有文字,
去除数字空格和符号,英文大写变小写,以原文件名,以txt文件存入2文件夹。
然后2文件夹里的每个txt文件内容,字母数不是3的倍数的在最后补a补成3的倍数,以txt格式存入3文件夹。
将3文件夹里的每个txt文件内容,前后翻转,即abc变成cba,以txt存入4文件夹。
以a文件夹里的a.txt做为字典,对4文件夹的每个txt文件内容进行编码处理,即字典:'abc'='a',文件内abcabc翻译为aa,将翻译后的字母以txt格式存入文件夹5。

使用python
处理后,截图看看
即0文件夹
1.txt :?Aaabb bcccd
2.txt :aaA BbbccCde
3.txt :Cccbb baaad
a文件夹
a.txt :aaa=x,bbb=y,ccc=z,daa=t,dea=u

使用python,展示运行结果

博主:a.txt里的 daa =t dea= u 应该是aad=t,aed=u
运行图如下:

img

import math
import os
import re


# 遍历文件,按特定规则处理
def trans(root_dir):
    if not os.path.exists("2/"):
        os.makedirs("2/")
    if not os.path.exists("3/"):
        os.makedirs("3/")
    if not os.path.exists("4/"):
        os.makedirs("4/")
    if not os.path.exists("5/"):
        os.makedirs("5/")

    # 读取字典 0/a.txt
    dict = {}
    with open("a/a.txt", "r", encoding='utf-8') as f:
        str5 = f.read()
        print('0/a.txt: ', str5)
        str5_ = str(str5).split(",")
        for i in str5_:
            keys = str(i).split("=")
            dict[keys[0]] = keys[1]
    print(dict)

    for f in os.listdir(root_dir):
        if f.endswith(".txt"):
            f_name = os.path.splitext(f)[0]
            f_path = os.path.join(root_dir, f)

            # 读取原始文件并处理
            with open(f_path, "r") as f:  # 打开文件
                str1 = f.read()  # 读取文件

            print('原始文件:', f_path)
            with open("1/" + str(f_name) + ".txt", "r") as f:  # 打开文件
                str1 = f.read()  # 读取文件
                print('str1: ', str1)

            # 匹配所有小写字母
            str2 = ''.join(re.findall(r"[a-z]+", str(str1).replace(" ", '').lower()))
            print('str2: ', str2)

            with open("2/" + str(f_name) + ".txt", "w") as f:
                f.write(str2)  # 自带文件关闭功能,不需要再写f.close()

            # 不是3的倍数,填充'a'
            str3 = str2.ljust(math.ceil(len(str2) / 3.0) * 3, 'a')
            print('str3: ', str3)
            with open("3/" + str(f_name) + ".txt", "w") as f:
                f.write(str3)  # 自带文件关闭功能,不需要再写f.close()

            # 字符串翻转
            str4 = str(str3)[::-1]
            print('str4: ', str4)
            with open("4/" + str(f_name) + ".txt", "w") as f:
                f.write(str4)  # 自带文件关闭功能,不需要再写f.close()



            str5 = ''
            for i in range(len(str4) // 3):
                str5 = str5 + dict[str4[i * 3:(i + 1) * 3]]
            with open("5/" + str(f_name) + ".txt", "w") as f:
                f.write(str5)  # 自带文件关闭功能,不需要再写f.close()
            print('str5: ', str5)


trans("1/")