Одна вещь, которую вы можете сделать, это загрузить содержимое файла и проверить, находится ли файл в файле:
if text in open("test2.txt"):
# write here
else:
# text is already in file, don't write
Однако это очень неэффективно. Лучше создать файл с уже написанными именами файлов и проверить, что:
(в начале вашего кода):
files = open("files.txt").readlines()
(до parser.from_file(file)
):
if file in files:
continue # don't read or write
(после f.close()
):
files.append(file)
(после завершения всего цикла)
with open("files.txt", "w") as f:
f.write("\n".join(files))
Собираем все вместе:
files = open("files.txt").readlines()
for filename in os.listdir(directory):
if filename.endswith(".pdf"):
file = os.path.join(directory, filename)
if file in files:
continue # don't read or write
print(file)
#parse data from file
file_data = parser.from_file(file)
#get files text content
text = file_data['content']
#print(type(text))
print("len ", len(text))
#print(text)
#save to textfile
f = open("test2.txt", "a+", encoding = 'utf-8')
f.write(text)
f.close()
files.append(file)
else:
continue
with open("files.txt", "a+") as f:
f.write("\n".join(files))
Обратите внимание, что вам нужно создать файл с именем files.txt
в текущем каталоге.