如何将一个文件中的每个值替换到另一个文件的占位符中?
数据阿明
结论
这是一个根据两份文件生成组合记录的任务:对 File1 中的每个值,依次遍历 File2 的所有记录,并将记录中的 *** 替换为该值。按题目给出的顺序,5 个值与 4 条模板记录会生成 20 条记录。
例如,File1 第一行的值是 AST,File2 中的前两条记录替换后为:
T.ABC.TXT.AST.EF.TAXSE.IWS.WISHS
T.ABC.TXT.AST.EF.TAXSE.TWS.WISHS
Python 示例
假设输入文件名为 file1.txt 和 file2.txt,且 File2 的每条记录都恰好包含一个 ***:
from pathlib import Path
values = Path("file1.txt").read_text(encoding="utf-8").splitlines()
records = Path("file2.txt").read_text(encoding="utf-8").splitlines()
output = []
for value in values:
for record in records:
if record.count("***") != 1:
raise ValueError(f"记录必须恰好包含一个 ***:{record!r}")
output.append(record.replace("***", value, 1))
Path("output.txt").write_text(
"\n".join(output) + "\n",
encoding="utf-8",
)
外层循环按顺序遍历 File1,因此输出中会先列出所有 AST 记录,再列出所有 BDT 记录,后续值依次排列。内层循环保留 File2 中记录的原有顺序。最终的 output.txt 共 20 行。
使用前检查
示例使用 UTF-8 编码读取文件。如果文件实际采用其他编码,请将 encoding="utf-8" 改为相应编码。代码还会检查每条模板记录是否恰好包含一个 ***。如果占位符缺失或重复,程序会报错,避免生成不符合预期的结果。
备注:内容仅供参考。
