博主:a.txt里的 daa =t dea= u 应该是aad=t,aed=u
运行图如下:
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/")