file.readable () перезаписывает внешние текстовые файлы - ошибка или плохой код? - PullRequest
0 голосов
/ 20 января 2019

Я беру учебник по youtube для python3 - в этом упражнении код работает просто отлично, если у меня выбрана опция open r для чтения файлов. Если я переключаю «r» на «w», он в первый раз проходит нормально, говорит, что не может прочитать файл, что является ожидаемым результатом. Но когда я снова смотрю на employee.txt или пытаюсь перезапустить код с включенной опцией «r», я вижу, что текстовый файл пуст.

Я пробовал синтаксис всеми возможными способами, но до сих пор мне не удавалось выяснить, почему он очищает текстовый файл

Как бы вы пошли по поводу устранения неполадок, подобных этому? Или в моем коде есть что-то очевидное, что вы видите? (код в точности как пример курса).

#!/usr/bin/env python3
# Script Name - reading-files.fcc.py

employee_file = open("employees.txt", "r")

if employee_file.readable() == True:
    print(employee_file.read())
    employee_file.close()
    exit
else:
    print("Cannot read file.")
    employee_file.close()
    exit

Вот это employee.txt:

Jim - Sales
Dwight - Sales
Pam - Sales
Michael - Manager
Oscar - Accounting

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Когда вы открываете файл с параметром 'w', employee_file.readable() возвращает False, поэтому он печатает строку, закрывает и сохраняет пустой файл .

0 голосов
/ 20 января 2019

Это может быть хорошим сообщением для вашего рассмотрения.

Открытие файла в режиме w перезапишет файл, а это означает, что, если вы потом ничего не записываете в файл, он фактически очистит содержимое файла - в вашем случае без дополнительного текста, оставив содержимое файла пустым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...