Какие есть варианты решения кроме этого

AAAAAAAAAAAAAAAAAAAAAAAAA

Новичок
Пользователь
Апр 14, 2022
15
0
1
В директории есть файл с данными в файловой системе, и необходимо его прочитать. В этом случае может всплывать несколько исключительных ситуаций, такие как: нет файла или файл пустой. Нужно реализовать:
  • Если в файле есть данные, записать данные в строку result;
  • Если файл имеется, но он пустой, то нужно генерировать исключение, который выдает сообщение «файл пустой» и создать пустую строку result.
  • Если такого файла не существует, то вывести сообщение «такого файла не существует» и создать пустую строку result (использовать исключение IOError).

Python:
import os.path

try:
    file = open('text.txt')
except IOError as e:
    print(u'такого файла не существует')
    my_file = open("text.txt", "w+")
    my_file.write("result\n")
    my_file.close()
else:
    with file:
        result = os.stat('text.txt')
        if result.st_size:
            print('там есть что то')
            f = open('text.txt', 'a+')
            f.write('result\n')
        else:
            print('файл пустой')
            f = open('text.txt', 'w')
            f.write('result\n')
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
Например так (думаю result это переменная с содержанием файла)
Python:
import os

def open_file(path):
    if os.path.isfile(path):
        with open(path) as f:
            result = f.read()
            assert result, "Файл пустой"
            return result
    raise IOError("Такого файла не существует")

open_file("./test.txt")
 
  • Мне нравится
Реакции: AAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAA

Новичок
Пользователь
Апр 14, 2022
15
0
1
Например так (думаю result это переменная с содержанием файла)
Python:
import os

def open_file(path):
    if os.path.isfile(path):
        with open(path) as f:
            result = f.read()
            assert result, "Файл пустой"
            return result
    raise IOError("Такого файла не существует")

open_file("./test.txt")
СПАСИБО!
 

Форум IT Специалистов