我有一个很大的 .txt 文件 我已经在 python 中使用
readlines()
阅读了它
样品:
lines = ["XX_A_Name, A_Bad_Joke = '67' , \n", "A quick Black.Jack fox JJ_Value over XX_A_Name a.lazy.dog\n"]
替换在 Excel 文件中定义:
OldName New_replacement
XX_A_ ZZ_B_
A_Bad_Joke C_Good_Joke
Black.Jack Yellow.flower
JJ_Value KK_Sum
a.lazy.dog very.huge
我想读取 Excel 文件并替换 txt 文件中 OldName 列中列出的所有值。
例如:示例输出应该类似于:
["ZZ_B_Name, C_Good_Joke = '67' , \n", "A quick Yellow.flower fox KK_Sum over ZZ_B_Name very.huge\n"]
我想为此创建一个函数。因为这只是我粘贴到此处的 txt 文件的示例部分。有多个 .txt 文件需要加载、替换并保存为新的 .txt 文件。
我正在寻求帮助,以找到一种有效且快速的方法来做到这一点。
可以使用
pd.read_excel()
读取 excel,并且 re
包可用于replace()。但我无法理解一切如何组合在一起。
假设您有一个电子表格,其中 A 和 B 列中包含替换值。第一行无关紧要。
对于每个原始文档,创建一个新文件,原始文档名称前缀为“new_”。
根据替换列表的大小,迭代调用 str.replace 的输入文档次数。这可能不是最有效的机制,但它在功能上是正确的。
import openpyxl
# list of documents to process
document_list = ["Document.txt"]
wb = openpyxl.load_workbook("Replacements.xlsx")
replacements = []
for row in wb.active.iter_rows(min_row=2, values_only=True):
# clean up any leading/trailing whitespace
replacements.append(tuple(map(str.strip, row)))
for file in document_list:
with open(file) as data_in, open("new_"+file, "w") as data_out:
for line in data_in:
for r in replacements:
line = line.replace(*r)
data_out.write(line)