Python эквивалент метода Ruby File.read - PullRequest
1 голос
/ 21 февраля 2011

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

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

Я просто хочу контент.

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

Ответы [ 3 ]

4 голосов
/ 21 февраля 2011

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

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

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

with open("/path/to/file","r") as file:
   text = file.read()
3 голосов
/ 21 февраля 2011

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

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

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

2 голосов
/ 21 февраля 2011

Нет такой функции, включенной в Python. Однако определить его достаточно просто.

def read_whole_file(path):
    with open(path) as f:
        return f.read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...