正则表达式Python-修改随机生成的字符串
我需要从文件中读取两个字符串,一个是从文件中读取的“静态”字符串,另一个是随机动态生成的字符串,它也写在文件中 然后,将随机生成的字符串中的一个字符替换为另一个随机字符 然后重复这个过程。直到我得到文件上的“静态”字符串,在本例中是“thisastring” 我在尝试实现这一目标时迷失了方向,这就是我目前所拥有的:正则表达式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
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
和字符串indexstr[i]
似乎就足够了。请修复您的代码块;部分代码超出了代码块格式,使内容更难阅读。完成,抱歉,谢谢,没有正则表达式,你认为呢?即使是逐个字符?您也不需要检查文件是否存在,然后将其删除w
将创建一个文件,如果存在,则删除其所有内容。您还正在对一个关闭的文件句柄运行re.search
,这不会给您预期的结果。您好,谢谢,但我不明白,您的更改是针对“file.dat”文件的,而不是随机生成的文件?我修改了答案以向您显示覆盖文件变量的代码。因此,我必须做些其他事情吗?对else语句进行评论,对吗?你的答案是一样的,如果我对else语句进行评论呢?我必须这样做吗?修改?您必须使用不同的变量来存储文件内容。在本例中,我建议使用名称data
。