我想编写一个脚本来检查并打开一个名为“.mysettings”的设置文件,如果它存在于 HOME 目录中。如果该文件不存在于 HOME 目录中,则它应该尝试在当前目录中打开一个(如果存在的话)。
python中是否有成语或单行代码来编写类似的程序?
我现在能想到的最好方法是尝试使用 try-catch 块打开第一个文件,就像这个问题中解释的那样,然后尝试第二个文件。
这是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()
像这样?
f = open(fn1 if os.path.exists(fn1) else fn2, "r")
(虽然它和 try/catch 不完全一样,因为在检查时 fn1 存在的情况下它仍然可能抛出的情况很少见。)
这个怎么样
filename = '/tmp/x1' if os.path.exists('/tmp/x1') else '/tmp/x2'