Quelle est la manière de Pythonic d'essayer de lire un fichier et si cette lecture lève une exception fallback pour lire un autre fichier?Manière pythonique d'essayer de lire un fichier et en cas d'exception repli sur le fichier de remplacement
Voici l'exemple de code que j'ai écrit, qui utilise des blocs try
- except
imbriqués. Est-ce pythonique:
try:
with open(file1, "r") as f:
params = json.load(f)
except IOError:
try:
with open(file2, "r") as f:
params = json.load(f)
except Exception as exc:
print("Error reading config file {}: {}".format(file2, str(exc)))
params = {}
except Exception as exc:
print("Error reading config file {}: {}".format(file1, str(exc)))
params = {}
Cela peut entraîner des conditions de course, plus 'OSError' pourrait aussi être dû à' PermissionError' etc. –
Pas vous obtenir 'PermissionError' de toute façon si vous essayez de' open (fp, "r") 'sans les autorisations appropriées? – Vinny