Regex Python - 修改随机生成的字符串

时间:2016-11-01 04:17:39

标签: python regex string random

我需要从文件中读取,两个字符串,一个静态'来自文件的字符串,以及一个随机动态生成的字符串,也写在文件上。

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

重复这个过程。直到我得到"静态"文件中的字符串,在这种情况下"这是一个字符串"。

我很遗憾试图实现这一目标,这是我到目前为止所做的:

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文件包含THIS IS A STRING字符串,我将其称为'静态字符串。一,它没有变化,应该由随机生成的过程匹配。

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

因此,简而言之,我如何逐个字符地阅读file.dat字符串,newfile.txt上随机生成的字符串也一样?

我希望我已经解释过了自己。

1 个答案:

答案 0 :(得分:1)

至少,你应该改变这个

file=file.read().split(',')
print file

和这个

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

到这个

data=file.read().split(',')
print data

和这个

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

打开输出文件时丢失文件内容:

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