【python学习】批量替换/修改文件某字符串
本文实现批量读取文件,并修改文件中某字符串,重新写入文件。
·
本文实现批量读取文件,并修改文件中某字符串,重新写入文件。
任务要求
要求实现将某文件夹下,所有子文件夹中文件的某个字段进行修改
代码思路
代码思路设计如下:
【对单份文件】
- 使用read()将文件内容读取为一个字符串
- 使用replace()将该字符串中的某个字段进行替换
- 重新以只写模式读入文件,将修改后的字符串重新写入文件
【对多份文件】
结合os模块,依次读入文件夹路径,子文件夹路径,文件路径,然后使用for循环,对每份文件进行遍历,然后执行读入文件、替换字符串、重新写入文件的操作
实现代码
import os
def new_file(file_PATH,old_str,new_str):
'''
该函数实现批量读入文件,并寻找替换某个字符串,将修改后的字符串重新写入文件
file_PATH:主文件夹路径
folder_path:子文件夹路径
file_path:文件路径
old_str:待修改的字符串
new_str:修改后的字符串
'''
folder_list=os.listdir(file_PATH)#文件夹下的子文件夹列表
for folder in folder_list:
folder_path=os.path.join(file_PATH,folder)#子文件夹路径
file_list=os.listdir(folder_path)#子文件夹下的文件列表
for file in file_list:
file_path=os.path.join(folder_path,file)#文件路径
with open(file_path, "r") as f: # 以只读方式打开文件
data = f.read() # 读取文件,读取为一个字符串
str_replace = data.replace(old_str,new_str)#将字符串中的某个字符进行替换
with open(file_path, "w") as f:#重新打开文件,选择写入模式
f.write(str_replace) # 将修改后的字符串重新写入文件
#函数执行
if __name__ == "__main__":
file_PATH=r'/quantum_chemistry/xtb_calc/file'
old_str="PBE"
new_str="BLYP"
new_file(file_PATH=file_PATH,old_str=old_str,new_str=new_str)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献6条内容
所有评论(0)