Я создаю функцию поиска python 3, которая принимает ввод от пользователя. Пользователь вводит строку, которая затем ищется в текстовом документе.
Я протестировал функцию с двумя файлами docx - один со словом «привет», а другой со словом «там».
Когда я ввожу слова в том регистре, в котором они находятся в файле docx, функция поиска возвращает имя файла — успех! Однако, когда я ввожу слова без правильного регистра, я ничего не возвращаю.
Я видел здесь несколько вопросов об опциях, нечувствительных к регистру, но я не смог найти тот, который был бы достаточно похож на мой проект. Любая помощь приветствуется.
import os
import docx2txt
os.chdir('c:/users/Says/desktop/projectx')
path = ('c:/users/Says/desktop/projectx')
files = []
x = str(input("search: "))
for file in os.listdir(path):
if file.endswith('.docx'):
files.append(file)
for i in range(len(files)):
text = docx2txt.process(files[i])
if x in text:
print (files[i])
Вы можете использовать .lower()
, чтобы перевести обе строки в нижний регистр.
if x.lower() in text.lower():
print( files[i] )
Один из способов, который я могу предложить, - это просто преобразовать x
и test
в upper
или lower
, а затем сравнить следующим образом, это даст вам желаемый результат.
if x.upper() in text.upper():
if x.lower() in text.lower():