Проверка определённого количества повторяющегося текста на python
У меня не происходит проверка 2 нужных мне повторяющихся слов но ошибки нет! как мне это исправить? Если конкретно с помощью global os считывается названия файлов с расширением mp4 и название записывается в переменную file дальше создаётся текстовый файл (Videos.txt) который находится там же где находится моя программа в одной папке с перечислениями файлов которые записаны в переменную file с новой строки дальше считываются все строки из текстового файла и происходит поиск именно двух повторяющихся слов записанных в переменную file если они находятся то программа закрывается если же нет программа продолжает работу
from __future__ import unicode_literals
import glob, os
import youtube_dl
import datetime
from Google import Create_Service
from googleapiclient.http import MediaFileUpload
os.chdir("C:/Users/User/Desktop/youtube-bot")
for file in glob.glob("*.mp4"):
my_file = open("Videos.txt", "a+")
my_file.write(str(file)+"\n")
my_file = open("Videos.txt")
f = my_file.read()
if file == 2 in f:
exit(0)
else:
Ответы (2 шт):
самый простой вариант перезапись всего файла
x=open...
res=set(x)
x.write(res)
то есть переводим файл в список, который переовдив в сет, тем самым удаляя повторяющиеся строке, затем записываем результат. Но, оптимальнее проверять наличие совпадений перед записью в файл
Если нужно именно выходить при нахождении повтора. Сначала получаем список файлов, потом считываем файл построчно. если считанное из файла не в списке - добавляем в список, иначе - выходим. после можно перезаписать файл
os.chdir("C:/Users/User/Desktop/youtube-bot")
res = glob.glob("*.mp4")
with open("Videos.txt") as f:
for line in f:
if line.rstrip() in res:
exit(0)
else:
res.append(line.rstrip())
with open("Videos.txt", "w") as f:
for i in res:
f.write(i+'\n')