正则表达式Python-修改随机生成的字符串

正则表达式Python-修改随机生成的字符串,python,regex,string,random,Python,Regex,String,Random,我需要从文件中读取两个字符串,一个是从文件中读取的“静态”字符串,另一个是随机动态生成的字符串,它也写在文件中 然后,将随机生成的字符串中的一个字符替换为另一个随机字符 然后重复这个过程。直到我得到文件上的“静态”字符串,在本例中是“thisastring” 我在尝试实现这一目标时迷失了方向,这就是我目前所拥有的: import string import random import os import re file = open('file.dat', 'r') file=file.rea

我需要从文件中读取两个字符串,一个是从文件中读取的“静态”字符串,另一个是随机动态生成的字符串,它也写在文件中

然后,将随机生成的字符串中的一个字符替换为另一个随机字符

然后重复这个过程。直到我得到文件上的“静态”字符串,在本例中是“thisastring”

我在尝试实现这一目标时迷失了方向,这就是我目前所拥有的:

import string
import random
import os
import re

file = open('file.dat', 'r')
file=file.read().split(',')
print file

def id_generator(size=28, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))
if os.path.exists('newfile.txt'):
   os.remove('newfile.txt')
else:
    file = open("newfile.txt", "w")
    file.write(id_generator())
    file.close()
    if re.search(r"THIS IS A STRING", file):
        print("success!")
我试图通过
re
模块来实现这一点,因为它应该逐个字符读取,找到它在随机生成的字符串中的位置

不仅要进行比较,还要找到匹配字符的位置(如果有)

file.dat
文件包含
这是一个字符串
字符串,我称之为“静态”字符串,它不会改变,应该由随机生成的字符串匹配

newfile.txt
打印随机生成的字符串

因此,简而言之,我如何逐字读取
file.dat
上的字符串,以及
newfile.txt
上随机生成的字符串


我希望我已经解释过了。

至少,你应该改变这一点

file=file.read().split(',')
print file
还有这个

    if re.search(r"THIS IS A STRING", file):
        print("success!")
    if re.search(r"THIS IS A STRING", data):
        print("success!")
对此

data=file.read().split(',')
print data
还有这个

    if re.search(r"THIS IS A STRING", file):
        print("success!")
    if re.search(r"THIS IS A STRING", data):
        print("success!")
打开输出文件时将丢失文件内容:

else:
    file = open("newfile.txt", "w")

我不知道为什么需要正则表达式,尽管我不完全理解这个目标。但是
str.replace
str.index
和字符串index
str[i]
似乎就足够了。请修复您的代码块;部分代码超出了代码块格式,使内容更难阅读。完成,抱歉,谢谢,没有正则表达式,你认为呢?即使是逐个字符?您也不需要检查文件是否存在,然后将其删除
w
将创建一个文件,如果存在,则删除其所有内容。您还正在对一个关闭的文件句柄运行
re.search
,这不会给您预期的结果。您好,谢谢,但我不明白,您的更改是针对“file.dat”文件的,而不是随机生成的文件?我修改了答案以向您显示覆盖文件变量的代码。因此,我必须做些其他事情吗?对else语句进行评论,对吗?你的答案是一样的,如果我对else语句进行评论呢?我必须这样做吗?修改?您必须使用不同的变量来存储文件内容。在本例中,我建议使用名称
data