Почему условие в операторе if не выполняется, и как это исправить?

Как сделать так, чтобы код работал с содержимым файла, которое имеет вид:

2002143587 : 6f8mg7tur3a13pp1bkrzf1yohcooxtuertjrkoyy : 0

384172654 : 6f8mg7tur3a13pp1bkrzf1yohcooxtuertjrkoyy : 100

при вызове функции `got_key_week()`?
  • 22 апреля 2024 г. 15:10
Ответы на вопрос 2
При вызове функции `got_key_week()`, код будет работать как ожидается, если исправить условие в операторе `if`. 

Для чтения содержимого файла с таким форматом, вы можете использовать следующий код:

```python
def got_key_week():
    with open("file.txt", "r") as file:
        for line in file:
            parts = line.split(" : ")
            if int(parts[2]) > 0:
                print(parts[0])  # Выводим первую часть строки
```

Также убедитесь, что ваш файл действительно имеет название `file.txt` и находится в том же каталоге, где выполняется ваш скрипт.
Учи основы работы с файлами в питоне и включай голову. 
Чтение и запись в файл производится по т.н. текущей позиции. При открытии файла текущая позиция стоит в начале файла, а при чтении/записи она смещается на длину прочитанного/записанного.
А теперь смотри что ты делаешь. У тебя есть вызов fr = f.readlines() . Он построчно прочитает всё содержимое файла в список, и сохранит список в переменную fr. При этом текущая позиция окажется в конце файла - ты же прочитал всё содержимое.
Как следствие, все дальнейшие вызовы read() и readlines() не смогут прочитать НИЧЕГО - ты уже в конце файла, дальше ничего нет. Они будут возвращать пустую строку или пустой список - а ты этого явно не ожидаешь.
Раз уж ты читаешь весь файл в fr - то и дальше работай не с файлом, а со списком fr. Ну и проверка на chat_id у тебя кривая - что, если так совпадёт, что твой chat_id будет содержаться внутри второго значения (токен)? Такое может произойти, хоть это и маловероятно.

Я бы посоветовал не выпендриваться со своим форматом данных в текстовике, а использовать модуль json. Он гораздо удобнее для хранения структурированной информации. А если указать правильные параметры при записи в файл, то полученный файл будет более-менее человеко-читаемым.
Похожие вопросы