Python中相当于Ruby的File.read方法的实现

1 投票
3 回答
512 浏览
提问于 2025-04-16 12:11

我想一次性读取一个文件的内容。

我不想麻烦地去打开文件、读取文件,然后再关闭文件(这需要三次操作)。

我只想要文件的内容。

在Ruby语言中,有一个叫做File.read("/path/to/file")的方法,它可以返回那个文件的内容,并且会自动关闭文件。那么在Python中有没有类似的功能呢?

3 个回答

2

Python里没有这个功能,不过定义一个这样的功能其实很简单。

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

在Python中,你可以使用上下文管理器,这个功能从Python 2.5开始就有了。

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

它会自动为你打开和关闭文件。默认的模式是'r',也就是用来读取文件的。

4

你可以把两个指令连在一起,这样就能得到相同的效果。不过这样的话,文件就没有正确关闭。

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

补充一下:我所知道的最好方法是,你还是需要你提到的2/3。只要使用with语句,这样你就不用担心文件是否关闭了。

with open("/path/to/file","r") as file:
   text = file.read()

撰写回答