在Python中读写文件内容的简单方法
在Ruby中,你可以通过 s = File.read(filename)
从文件中读取内容。在Python中,我知道的最简洁明了的方式是:
with open(filename) as f:
s = f.read()
有没有其他方法可以做到更短(最好是一行代码)且更易读呢?
注意:我最开始把问题表述为“用一行代码来实现这个”。正如S.Lott所指出的,短并不一定意味着更易读。所以我重新表述了我的问题,以便更清楚地表达我的意思。我认为Ruby的代码更好、更易读,不仅仅是因为它是一行代码而不是两行(虽然这也很重要),还因为它是一个类方法,而不是实例方法,这样就不需要担心谁来关闭文件,如何确保即使出现异常也能关闭文件等等。正如下面的回答所提到的,你可以依赖垃圾回收(GC)来关闭文件(这样就能做到一行代码),但这反而让代码变得更糟,尽管它更短。这不仅因为它不够通用,还因为让代码变得不清晰。
7 个回答
42
这段内容和上面的一样,但没有处理错误:
s = open(filename, 'r').read()
197
这是一句简单的话。没有必要这样做。
with open('x.py') as f: s = f.read()