Так что у меня возникли проблемы с поиском решения моей проблемы. Я новичок в Python и не могу найти способ сделать эту работу. То, что я пытаюсь сделать, это перебрать все строки в файле и сопоставить несколько разных правил с каждой строкой и заменить всю строку содержимым пользователя. Я пробовал несколько методов, но никто не делает то, что мне нужно.Python Поиск и замена строки
print ("File to perform check on:")
fileToSearch = input("> ")
for line in fileinput.input(fileToSearch, inplace=True):
if 'foo' in line :
if 'footimestwo' in line :
sys.__stdout__.write('Wrong Answer. Try again:\n')
textToReplace = input("")
print(line.replace(line, textToReplace), end='')
Это заменяет линию пользовательским вводом, но не оставляет неизмененных линий; он просто заменяет файл новыми строками.
Другой метод, который я попытался было это:
print ("File to perform check on:")
fileToSearch = input("> ")
fin = open(fileToSearch, 'r')
fout = open("newFile.txt", 'w')
for line in fin:
if 'foo' in line :
if 'rom' in line :
print ('Wrong Answer. Try again:')
textToReplace = input("> ")
fout.write(textToReplace+'\n')
else:
fout.write(line)
else:
fout.write(line)
for line in fin:
if 'ram' in line :
if 'foo' in line :
print ('Wrong Answer. Try again:')
textToReplace = input("> ")
fout.write(textToReplace+'\n')
else:
fout.write(line)
else:
fout.write(line)
fin.close()
fout.close()
Это делает изменения в новом файле и сохраняет состояние покоя линий для первого оператора, но не выполняет последующие заявления. Есть идеи?
Подведите итог в 1 предложении, что вы пытаетесь сделать? – smushi
Я пытаюсь выполнить поиск по каждой строке файла, сопоставить его с несколькими, разными критериями и, если он соответствует запросу, пользователь должен внести изменения в строку и заменить строку на ввод пользователя, сохраняя все остальные строки, которые не имеют изменилось. – JoeFin
Я намерен использовать это для проверки безопасности ACL. – JoeFin