Tôi có một tập lệnh Python cần tìm một tập tin nhất định.Cách Pythonic xử lý nhiều vị trí tệp có thể? (Nếu không sử dụng trys lồng nhau)
Tôi có thể sử dụng os.path.isafile(), nhưng tôi đã nghe nói đó là Python xấu, vì vậy tôi đang cố gắng nắm bắt ngoại lệ.
Tuy nhiên, có hai vị trí mà tôi có thể tìm kiếm tệp. Tôi có thể sử dụng trys lồng nhau để xử lý này:
try:
keyfile = 'location1'
try_to_connect(keyfile)
except IOError:
try:
keyfile = 'location2'
try_to_connect(keyfile)
except:
logger.error('Keyfile not found at either location1 or location2')
Hoặc tôi có thể chỉ cần đặt một đường chuyền trong lần đầu tiên ngoại trừ khối, và sau đó có một khác chỉ dưới đây:
try:
keyfile = 'location1'
try_to_connect(keyfile)
except IOError:
pass
try:
keyfile = 'location2'
try_to_connect(keyfile)
except:
logger.error('Keyfile not found at either location1 or location2')
Tuy nhiên, có một chi tiết Pythonic cách để xử lý tình hình trên?
Chúc mừng, Victor
Tại sao bạn không viết vòng lặp? -1 vì không biết khái niệm về một vòng lặp –
Đó là một câu hỏi hoàn toàn hợp lệ yêu cầu một phương pháp pythonic hơn làm như vậy. Tôi không thực sự nghĩ rằng bạn có thể ding anh ta không nghĩ đến looping. –