如何用Python编写一个脚本,能够遍历指定文件夹中所有文件,查找每份文件中首次出现 '<SQL_CASE>' 的位置,并在此位置后插入特定文本?
时间: 2024-10-25 13:16:44 浏览: 22
要实现这个功能,你可以创建一个Python脚本,使用`os`模块遍历文件夹,`re`模块进行正则匹配,以及`open()`函数读取和修改文件内容。以下是一个基本的示例:
```python
import os
import re
def insert_text_after_sql_case(input_folder, output_folder, text_to_insert):
# 创建一个数据库连接(这里假设我们不直接操作文件,而是记录改动)
db = {} # 用字典模拟简单数据库
for foldername, subfolders, filenames in os.walk(input_folder):
for filename in filenames:
if filename.endswith(".txt"): # 只处理.txt文件
filepath = os.path.join(foldername, filename)
with open(filepath, "r") as f:
content = f.read()
# 查找SQL_CASE的第一次出现
match = re.search(r'<SQL_CASE>', content)
if match:
start_pos = match.start() + len('<SQL_CASE>') # 加上标签长度
end_pos = start_pos + len(text_to_insert) # 预计新的文本长度
# 插入新文本
new_content = content[:start_pos] + text_to_insert + content[end_pos:]
# 更新数据库或文件(这里仅打印结果)
db[filepath] = {"original": content, "modified": new_content}
# 输出更改结果(实际应用中可能需要写回原文件或生成新的文件)
for filepath, data in db.items():
print(f"File {filepath}:")
print("Original:", data["original"])
print("Modified after inserting text:", data["modified"])
# 调用函数,替换指定输入文件夹、输出文件夹及要插入的文本
insert_text_after_sql_case('/path/to/input/folder', '/path/to/output/folder', 'YOUR_INSERTED_TEXT')
阅读全文