我有一個類創建一個「Test」對象 - 一個基於(描述)外部測試腳本的對象。如何處理不存在的路徑?
的代碼可以在這裏找到:https://codeshare.io/5zlW0W
我使用這個類是這樣的:
from test import Test
test = Test("/path/to/test")
這工作得很好,當測試文件存在,但我打了以下錯誤,當它不存在:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/user/repos/test.py", line 13, in __init__
self.version = self.get_attribute("version")
File "/home/user/repos/test.py", line 33, in get_attribute
p = subprocess.Popen([self.path, '--' + attribute], stdout=subprocess.PIPE, universal_newlines=True)
File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'bla'
所以我的問題有兩個部分:
- 處理路徑不存在的情況下,最好的方法是什麼?
- 我可以使用函數來定義初始變量來獲取數據嗎?就像我在
__init__
中所做的那樣?
那麼,如果文件不存在,你想要發生什麼?正確的錯誤信息而不是異常?正在創建的文件? (如果是這樣,用什麼內容?) –
@ das-g理想情況下,如果找不到文件,我希望對象不被初始化。 – Sithling