現在、ユーザーが指定したディレクトリ内のファイルを検索できるプログラムを作成しています。try
しかし、私のステートメントとステートメントを要約するのに苦労していexcept
ます。私の現在のコードは次のとおりです。
if os.path.exists(file_path)!= True:
print('\n******* Path does not exist. *******\n')
else:
while True:
aa = '''\nWhich search characteristics would you like to use? \n 1. Search by name: N \n 2. Search by extension: E \n 3. Search by size: S
\n Please enter your choice: '''
answer = input(aa).strip()
if answer not in 'NnEeSs' or answer=='':
print('\n***** Invalid choice. *****')
elif answer in 'Nn':
while True:
try:
name = input ('\nEnter file name: ')
rr = search_by_name(name, file_path)
if not rr:
print('\n***** File not found *****\n')
else:
break
except WindowsError:
print('\n***** Oops! Access denied.*****\n')
continue
elif answer in 'Ee':
while True:
try:
ending = input ('\nEnter the file extension: ')
rr = search_by_extention(ending, file_path)
if not rr:
print('\n***** No File(s) found *****\n')
else:
break
except WindowsError:
print('\n***** Oops! Access denied. *****\n')
continue
elif answer in 'Ss':
while True:
try:
size = int(input('\nPlease enter file size: '))
rr = search_by_size(size, file_path)
if not rr:
print('\n***** No file(s) found *****\n')
else:
break
except ValueError:
print('\n***** Enter an numeric value. *****\n')
continue
except WindowsError:
print('\n***** Oops! Access denied. *****\n')
continue
これらのケースのそれぞれまたは全体として、上記のコードを書くためのより良い凝縮された方法はありますか? 各検索関数は、コードの結果を含むリストを返します。