Я новичок в python и работаю над своим финальным проектом для моего курса.Я с трудом заставляю программу искать во входном файле весь заданный список list1
и записывать положительные возвращаемые результаты в выходной файл.Я пробовал много вещей, таких как re.search
, создание функции, использование разных циклов, и проблема всегда одна и та же.Он будет искать только то, что находится в list1[0]
.Я не могу понять, как заставить это пройти весь список.Любая помощь будет принята с благодарностью, так как я уверен, что это что-то простое, с чем я просто не знаком или полностью отсутствует.
Ожидаемый результат Программа будет искать слова всписок (точный, но без учета регистра), он скопирует строку, в которой он был найден, в новый выходной файл и затем перейдет к следующему слову в списке, пока список не будет завершен.
В настоящее времяпросто скопировать слово из первой позиции в списке в файл и не двигаться дальше.Я не уверен, копирует ли она всю строку, поскольку строка - это просто слово.
# Ask user for needed keywords or symbols
user_keywords = input("What keywords or special symbols would you like to search the provided file for?\n"
"Please separate each entry with a comma.\nIf you would like to just search for question marks,"
" please just type n.\n")
# Holding list, using comma as a way to separate the given words and symbols
list1 = list(user_keywords.split(','))
# Print list for user to see
print("You have entered the following keywords and/or special symbols: ", list1)
# Opens a new file for saving the results to.
print("Please list the path you would like the new file to save to. Example: C:\ Users \ NAME \Desktop\File name.")
outFileName = input()
outFile = open(outFileName,'w')
def filter_lines_by_keywords(lines_to_filter, key_words):
key_words_s = set(key_words)
return filter(lambda l: set(l.split()) & key_words_s, lines_to_filter)
# Opens the file under review.
with open(path1,'r+') as file1:
file1lines = file1.readlines()
res = filter_lines_by_keywords(lines_to_filter= file1lines, key_words= list1)
outFile.write(str(list(res)))
outFile.close()
Пожалуйста, дайте мне знать, если я пропустил что-то, что нужно в коде, я думаю, чтовключил все это.Я проверил похожие темы и не смог найти ни одной, но, если она существует, сообщите мне.
Заранее спасибо.