Python中相当于Ruby的File.read方法的实现
我想一次性读取一个文件的内容。
我不想麻烦地去打开文件、读取文件,然后再关闭文件(这需要三次操作)。
我只想要文件的内容。
在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()