0

我想编写一个脚本来检查并打开一个名为“.mysettings”的设置文件,如果它存在于 HOME 目录中。如果该文件不存在于 HOME 目录中,则它应该尝试在当前目录中打开一个(如果存在的话)。

python中是否有成语或单行代码来编写类似的程序?

我现在能想到的最好方法是尝试使用 try-catch 块打开第一个文件,就像这个问题中解释的那样,然后尝试第二个文件。

4

3 回答 3

3

这是python的方法。没有一个衬里,但清晰,易于阅读。

try:
    with open("/tmp/foo.txt") as foo:
        print foo.read()
except:
    try:
        with open("./foo.txt") as foo:
            print foo.read()
    except:
        print "No foo'ing files!"

当然,您也可以随时执行以下操作:

for f in ["/tmp/foo.txt", "./foo.txt"]:
    try:
        foo = open(f)
    except:
        pass
    else:
        print foo.read()
  • 美丽总比丑陋好。
  • 可读性很重要。
于 2012-07-06T06:53:38.257 回答
3

像这样?

f = open(fn1 if os.path.exists(fn1) else fn2, "r")

(虽然它和 try/catch 不完全一样,因为在检查时 fn1 存在的情况下它仍然可能抛出的情况很少见。)

于 2012-07-06T06:54:17.603 回答
0

这个怎么样

filename = '/tmp/x1' if os.path.exists('/tmp/x1') else '/tmp/x2'
于 2012-07-06T06:55:23.213 回答