尝试执行以下操作:
我看到我的替换不起作用,以及如何在不创建新文件的情况下保存编辑过的文件。
这是我的代码。
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
我在这里做错了什么?
答案 0 :(得分:1)
文件以'r'模式打开,这意味着您无法在with下写入。由于您已经在内存中修改了数据,请尝试在“r”模式下关闭文件并打开“w”模式进行写入。