Я читаю все текстовые файлы в определенном c каталоге, ищу ключевые слова и затем записываю их в другой текстовый файл. В настоящий момент мой код читает по одному файлу за раз, поэтому он очень медленный, и из того, что я прочитал, лучший способ ускорить процесс - использовать несколько потоков для одновременного чтения и записи. Я попытался сделать это с помощью import concurrent.futures
, но в результате были написаны повторяющиеся записи.
Мой код без попытки многопоточности:
for filename in os.listdir(directory_path):
with open(os.path.join(directory_path, filename), 'r', encoding="utf-8-sig") as file:
print(filename)
for line in file:
line = line.lower()
line = line.replace(' ', '')
if not any(x in line for x in remove_items):
line = line.strip()
if all(ch in line for ch in check_char):
for item in keyword_list:
parts = item.split(':')
part1 = parts[0]
part2 = parts[1]
remaining_parts = parts[0].split('@')
domain = remaining_parts[1]
if keyword in domain:
print(domain)
keyword_list.append(domain)
with open(f'{directory_path}\!kw_list.txt', 'w') as f:
print(f"Writing {directory_path}\!kw_list.txt")
for item in keyword_list:
f.write(f"{item}\n")