Python эквивалент метода Ruby File.read

1

Я пытаюсь прочитать содержимое файла в одном вызове метода.

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

Мне просто нужен контент.

В рубине есть File.read( "/path/to/file" ), который возвращает содержимое этого файла и правильно закрывает его. Есть ли эквивалент в Python?

Теги:
file-io

3 ответа

3

Вы можете объединить две инструкции для получения того же поведения:/. Но тогда файл неправильно закрыт.

file = open("/path/to/file","r").read()

изменить: Лучший вариант, насколько мне известно, оставляет вам 2/3, о котором вы упоминаете. Просто используйте оператор with, поэтому вам не нужно беспокоиться о закрытии указанного файла.

with open("/path/to/file","r") as file:
   text = file.read()
  • 0
    Должен ли также быть блок try / finally?
  • 0
    отредактировано как 20 миллионов раз извините Окончательный ответ написан ...
3

Вы можете использовать Контекстный менеджер в Python, который доступен на Python 2.5.

with open('yourfile') as f:
   contents = f.read()

Он автоматически откроет и закроет файл для вас. Режим по умолчанию - "r", который обозначает чтение.

2

В Python нет такой функции. Это достаточно просто, чтобы определить один.

def read_whole_file(path):
    with open(path) as f:
        return f.read()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню