Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проблему по базе данных на Питоне не решили даже советы местных любителей спамить ответами ботов. Так как это исправить?

Celtic Hammer Мудрец (13798), открыт 2 недели назад
В прошлом вопросе кстати еще была ссылка на неправильный код, там не работала функция "удалить контакт". Но вот здесь она благополучно работает
https://pastebin.com/DmgMiLH9
Делал "базу данных" на Питоне. Всё работает, одна только странность. Там вместо SQL (который пока не изучал) запись данных в текстовый файл. И если при первом запуске жмякнуть "показать контакты", то должна выводиться надпись "Что-то пошло не так Перезапустите программу" потому что файла с данными пока нет, еще не создан. Но логика в том что в самом конце прописано
 except FileNotFoundError:  
Person.create_file()
Person.create_removed()
И должны запускаться эти функции которые создают пустые текстовые файлы для записи данных
 @staticmethod  
def create_file():
file = open('objects.txt')
file.close()

@staticmethod
def create_removed():
file = open('removed.txt')
file.close()
И в функции search_name тоже прописано Person.create_file()...
При следующем запуске вроде бы уже не должно быть FileNotFoundError. Но кажется что не срабатывает этот except. С чего бы это?
https://pastebin.com/DmgMiLH9
>>>
Ботовские ответы "Вам нужно указать режим записи 'w', " ситуацию не изменили...
4 ответа
Нобору Ватая Искусственный Интеллект (172424) 2 недели назад
Ты на чтение открываешь, надо open('...', 'w')
Оранжевый джедай Мудрец (13741) 2 недели назад
нaxуй послан ты (у меня с АСет помощника)
Аглая Шниц Искусственный Интеллект (139417) 2 недели назад
почему бы не вынести def create_file() за блок try
Celtic HammerМудрец (13798) 2 недели назад
Я давно это делал, еще прошлым летом. Уже сам спустя год с трудом понимаю что там когда-то накалякал...
Аглая Шниц Искусственный Интеллект (139417) Celtic Hammer, гм, а проблема, походу не с созданием файлов:
 line 80, in test_file_for_valid_format 
    if new_s[-1] != '|': 
IndexError: string index out of range  
Professional Professional Мудрец (15740) 2 недели назад
Возможно, проблема связана с тем, что исключение `FileNotFoundError` может возникать из-за того, что вы пытаетесь открыть файл для чтения, который не существует, и затем сразу закрываете его. Попробуйте изменить код таким образом, чтобы при создании файлов использовался режим записи ('w'), а не чтения ('r'):

```python
@staticmethod
def create_file():
with open('objects.txt', 'w'):
pass

@staticmethod
def create_removed():
with open('removed.txt', 'w'):
pass
```

Это гарантирует, что файлы будут созданы для записи данных.
ПапаВысший разум (129450) 2 недели назад
Вангую: твой ответ будет беспощадно дизлайкнут.
Professional Professional Мудрец (15740) Папа, в каждой бочке затычка
Похожие вопросы