特定のフォルダが存在する場合、解析して検索する機能があります。ブール型辞書のチェック
ゴール:これらのフォルダが辞書内に存在する場合は、緑色(フォルダあり)または赤色(フォルダは存在しません)で印刷します。私は辞書でブールチェックをすることに問題があります。私はかなり新しいPythonです。
def parse_directory(startpath):
for dir_path, folders, filenames in os.walk(startpath):
path_level = dir_path.replace(startpath, '').count(os.sep)
relative_dir = dir_path.replace(startpath, '').strip(os.sep)
current_dir = dir_path.split(os.sep)[-1]
if path_level == 1:
mnemonic = relative_dir
client_dictionary[mnemonic] = {}
if "4x Clinic" in folders:
client_dictionary[mnemonic]["clinic"] = True
else:
client_dictionary[mnemonic]["clinic"] = False
if "4x Hospital" in folders:
client_dictionary[mnemonic]["hospital"] = True
else:
client_dictionary[mnemonic]["hospital"] = False
if "4x Lab" in folders:
client_dictionary[mnemonic]["lab"] = True
else:
client_dictionary[mnemonic]["lab"] = False
if "Hub Millennium" in folders:
client_dictionary[mnemonic]["hub_millennium"] = True
else:
client_dictionary[mnemonic]["hub_millennium"] = False
if "Client Millennium" in folders:
client_dictionary[mnemonic]["client_millennium"] = True
else:
client_dictionary[mnemonic]["client_millennium"] = False
上記のコードは解析します。ブールチェックを行うには、1〜get_status
の2つの関数があり、もう1つはprint_colored_mnemonics
で、mneonics(存在する場合は緑色)は赤色(存在しない場合)を表示します。ここで
def get_status(startpath):
for dict_keys, dict_values in parsing_dict.items():
if all(dict_values):
return True
elif any(dict_values):
return False
がprint_colored_mnemonics
コードされています:私はこの権利を
def print_colored_mnemonics(startpath):
RED = "\033[91m"
RED2 = "\033[0m"
GREEN = "\033[92m"
GREEN2 = "\033[0m"
if get_status(startpath) == True:
print(GREEN + '{}'.format(dict_keys) + GREEN2)
if get_status(startpath) == False:
print(RED + '{}'.format(dict_keys) + RED2)
のでしょうか?ここで
はget_status
コードですか私は本質的に、コンテンツが存在する場合、辞書(ニーモニック)のキーが緑色であることを望んでいます。キーに内容がない場合、ニーモニックは赤で印刷する必要があります。
あなたは実際に何を持っていますか? –
@AustinHastingsコードが正しく動作していません。実際にはコンテンツを保持していないフォルダがある場合、コードはすべてのニーモニックを緑色で印刷しています。 – FFF
コードの最初のブロックは 'get_filtered_mnemonics'関数であるはずですか? –