Я пишу скрипт на python, который изменяется на несколько каталогов и анализирует различные файлы внутри них (в конце концов, я заполняю базу данных MySQL проанализированными данными).На самом деле я сначала пытаюсь изменить значение на /baseDirA/the/rest/is/the/same
и проанализировать таблицы, которые я хочу.Если /baseDirA/the/rest/is/the/same
не существует, я пытаюсь изменить на /baseDirB/the/rest/is/the/same
и проанализировать те же таблицы, которые могу анализировать с /baseDirA/the/rest/is/the/same
.
В моем коде, который уже слишком длинный для вставки сюда, У меня есть заявление try except
, которое до сих пор печатает сообщение в случае, если dir (то есть /baseDirA/the/rest/is/the/same
или /baseDirB/the/rest/is/the/same
) не существует, как показано ниже
import os
# define the two baseDirs
dirs = 'baseDirA baseDirB'.split()
for basedir in dirs:
try:
cwd = f"{basedir}/the/rest/is/the/same"
os.chdir(cwd)
# Then I am doing the operations to parse different files
# Below is the except statement, in case one of the directories does not exist
except FileNotFoundError:
print(f"WARNING: directory {cwd} does not exist")
У меня теперь тривозможные результаты
/baseDirA/the/rest/is/the/same
существует:
- Я затем
cd
в этот каталог и выполню необходимые операции
/baseDirA/the/rest/is/the/same
не существует, но существует /baseDirB/the/rest/is/the/same
:
- I
cd
до /baseDirB/the/rest/is/the/same
и выполнение необходимых операций
Ни /baseDirA/the/rest/is/the/same
, ни /baseDirB/the/rest/is/the/same
не существует.
- В этом случае, с моим текущим оператором
try except
, я получу сообщение примерно так:
WARNING: directory /baseDirA/the/rest/is/the/same does not exist
WARNING: directory /baseDirB/the/rest/is/the/same does not exist
и в этомто есть, если я выполняю оператор except
два раза подряд (без операций внутри оператора try
), я хотел бы выполнить что-то еще.
Каков наилучший способ сделать это?Возможно, было бы лучше добавить еще один цикл for
перед тем, который я иллюстрировал, просто чтобы проверить наличие обоих каталогов?Или я могу сделать что-то под оператором except
?