📅  最后修改于: 2023-12-03 15:42:21.507000             🧑  作者: Mango
本题为“门|门 IT 2005”的第89题,要求编写一个程序,将指定目录下的所有txt文件中的所有“abc”替换为“def”。
本题主要需要考虑文件的操作和字符串的替换。可以使用Python的os和shutil模块来操作文件,使用正则表达式来进行字符串替换。
首先,需要使用os模块中的walk函数来遍历目录中的所有文件,并对每个txt文件进行操作。
import os
for subdir, dirs, files in os.walk(path):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(subdir, file)
# 对文件进行操作
接着,使用Python的内置字符串函数replace来进行字符串替换。
file_content = open(file_path).read()
new_content = file_content.replace(old_str, new_str)
最后,需要将替换后的字符串写入文件保存。
with open(file_path, 'w') as f:
f.write(new_content)
import os
def replace_files(path, old_str, new_str):
"""
将指定目录下的所有txt文件中的所有“old_str”替换为“new_str”。
"""
for subdir, dirs, files in os.walk(path):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(subdir, file)
file_content = open(file_path).read()
new_content = file_content.replace(old_str, new_str)
with open(file_path, 'w') as f:
f.write(new_content)
使用以下命令即可调用函数:
replace_files('path/to/folder', 'abc', 'def')
其中,第一个参数为需要操作的文件夹路径,第二个参数为需要替换的字符串,第三个参数为替换后的字符串。