Python在内存中打开文件,运行替换然后保存



尝试执行以下操作:

  1. 打开内存中的文件
  2. 逐行阅读
  3. 搜索行中的多个模式
  4. 找到匹配项的 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"模式进行写入。

最新更新