尝试执行以下操作:
- 打开内存中的文件
- 逐行阅读
- 搜索行中的多个模式
- 找到匹配项的 IF 将其替换为函数生成的随机哈希。
我看到我的替换不起作用,以及如何在不创建新文件的情况下保存编辑后的文件。
这是我的代码。
with open('temp', 'r') as f:
for line in f:
firstPattern = re.search(r'email=(.*?)"', line)
secondPattern = re.search(r'"emailTo":"(.*?)"', line)
thirdPattern = re.search(r'pid="(.*?)"', line)
if firstPattern:
random_hash = hash_generator()
temp_var = firstPattern.group(1)
if temp_var in pattern_dict:
line.replace(str(temp_var), str(random_hash))
else:
pattern_dict[firstPattern.group(1)] = random_hash
elif secondPattern:
random_hash = hash_generator()
temp_var = secondPattern.group(1)
if temp_var in pattern_dict:
line.replace(str(temp_var), str(random_hash))
else:
pattern_dict[secondPattern.group(1)] = random_hash
elif thirdPattern:
random_hash = hash_generator()
temp_var = thirdPattern.group(1)
if temp_var in pattern_dict:
line.replace(str(temp_var), str(random_hash))
else:
pattern_dict[thirdPattern.group(1)] = random_hash
我在这里做错了什么?
文件以"r"模式打开,这意味着您无法在 with 下写入它。由于内存中已经有修改后的数据,请尝试以"r"模式关闭文件并打开"w"模式进行写入。