2016-11-01 2 views
1

Мне нужно прочитать из файла, две строки, одну «статическую» строку из файла и одну случайную динамически сгенерированную, которая также записывается в файл.Regex Python - Изменить произвольную сгенерированную строку

Затем замените один символ в случайной сгенерированной строке другим случайным.

И повторите процесс. Пока я не получу «статическую» строку, которая находится в файле, в этом случае «ЭТО СТРОКА».

Я довольно потерял, пытаясь достичь этого, это то, что я до сих пор:

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?

Надеюсь, я объяснил сам.

+3

Не знаю, почему вам нужно регулярные выражения для этого, хотя я не совсем понимаю цели. Но 'str.replace',' str.index' и строковый индекс 'str [i]' кажутся достаточными для целей. – Evert

+1

Пожалуйста, исправьте свой кодовый блок; часть кода выходит за рамки форматирования кода кода, что усложняет чтение. – Evert

+0

Выполнено, Извините, спасибо, без регулярного выражения вы думаете? Даже характер по характеру? – NeoVe

ответ

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") 
+0

Привет, спасибо, но я не понимаю, ваши изменения для файла file.dat, а не для случайного сгенерированного? – NeoVe

+0

Я изменил ответ, чтобы показать вам код, который перезаписывает переменную файла. –

+0

Итак, я должен сделать что-то еще? Прокомментировать это утверждение? – NeoVe

Смежные вопросы