Я вижу проблему с вашим кодом. Проблема в этом:
for filename in os.listdir(cwd):
print(filename)
if filename != post.filename:
url = post.file_url
wget.download(url)
time.sleep(1.03)
Вы просматриваете каждый файл в каталоге. Это означает, что если в каталоге есть один файл, имя которого не совпадает с именем файла сообщения, оно будет загружено.
Допустим, ваш код пытается загрузить файл3, а в вашем каталоге есть файлы1, файл2 и файл3.
С этими файлами в каталоге ваш оператор if выполнит эти 3 проверки.
if 'file1' != 'file3':
url = post.file_url
wget.download(url)
time.sleep(1.03)
if 'file2' != 'file3':
url = post.file_url
wget.download(url)
time.sleep(1.03)
if 'file3' != 'file3':
url = post.file_url
wget.download(url)
time.sleep(1.03)
Вместо этого вы можете попробовать проверить, есть ли имя файла в списке, который возвращает os.listdir ().
Вот мое решение:
if 'ylyl' in subject or 'YLYL' in subject:
for post in thread.all_posts:
if post.has_file:
print(post.filename)
if post.filename not in os.listdir(cwd):
url = post.file_url
wget.download(url)
time.sleep(1.03)