python在内存中打开文件,运行replace,然后运行s

2024-09-30 03:21:55 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试执行以下操作:

  1. 打开内存中的文件
  2. 逐行读
  3. 搜索行中的多个模式
  4. 如果找到匹配项,则将其替换为函数生成的随机哈希。你知道吗

我看到我的替换不起作用,以及如何保存已编辑的文件而不创建新文件。你知道吗

这是我的密码。你知道吗

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

我做错什么了?你知道吗


Tags: 文件inifvarlinegrouprandomhash
1条回答
网友
1楼 · 发布于 2024-09-30 03:21:55

文件是在“r”模式下打开的,这意味着您不能在with下对其进行写入。由于内存中已经有修改过的数据,请尝试以“r”模式关闭文件,并打开“w”模式进行写入。你知道吗

相关问题 更多 >

    热门问题