如果cwd中不存在文件,则以智能方式结束子例程

use*_*396 3 python

我试图在cwd中打开文件"data.txt"并读取行,如果文件不存在,是否有一个oneliner(或close)退出子例程..我知道有一些方法,比如使用os.path.exists和尝试/除了IO错误,但我对单行或最聪明的方式感兴趣

def readfile ():
    f = open('data.txt')
    lines = f.readlines()
    f.close()
Run Code Online (Sandbox Code Playgroud)

ava*_*sal 7

你可以用withopen

with open('data.txt') as f:
    lines = f.readlines()
Run Code Online (Sandbox Code Playgroud)

with语句将在嵌套的代码块之后自动关闭文件.使用with语句的优点是无论嵌套块如何退出,都可以保证关闭文件.如果在块结束之前发生异常,它将在异常被外部异常处理程序捕获之前关闭该文件.

如果嵌套块包含return语句或continue或break语句,那么with语句也会在这些情况下自动关闭文件.