我想编写一个脚本,检查并打开一个名为“.mysettings”的设置文件(如果它存在于HOME目录中)。如果HOME-directory中没有该文件,它应该尝试在当前目录中打开一个文件(如果它存在)。
python中是否有成语或单行程序来编写类似的内容?
我现在能想到的最好方法是尝试使用try {catch}块打开第一个文件,如this question中所述,然后尝试第二个文件。
答案 0 :(得分: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()
答案 1 :(得分:3)
喜欢这个吗?
f = open(fn1 if os.path.exists(fn1) else fn2, "r")
(虽然它与try / catch不完全相同,因为在检查时fn1存在的情况下仍然会抛出极少数情况。)
答案 2 :(得分:0)
这个怎么样
filename = '/tmp/x1' if os.path.exists('/tmp/x1') else '/tmp/x2'