, поэтому в настоящее время я пытаюсь увидеть, существует ли файл с использованием Python 2.7.5 с ключевым словом any
и соответствует ли он одному из возможных вариантов в моем списке возможных имен файлов, чтобы распечатать его. Если ни один из них не существует, он должен просто распечатать ошибку.
Итак, для этого у меня есть следующий код:
import os
import sys
# globals
base_dir = 'C:\\Users\\Rietty\\'
def main():
# Get a list of all directories.
directories = [dI for dI in os.listdir(base_dir) if os.path.isdir(os.path.join(base_dir, dI))]
# Check if global.xml exists.
# Check #1
for dir in directories:
filenames = ["global.xml", "globals.xml"]
this_file = dir + "-base.xml"
filenames.append(this_file)
if not os.path.isdir(os.path.join(base_dir, dir)):
continue
if not any(os.path.isfile(os.path.join(base_dir, dir, filename)) for filename in filenames):
print("Error" + ": No global(s).xml or *-base.xml file in " + dir + "!")
else:
print(filename) # Errors out here!!
if __name__== "__main__":
main()
И я получаю ошибку:
print(filename)
NameError: global name 'filename' is not defined
Это работает правильно, если я уберу оператор else, но затем выполню только половину работы, которая проверяет, не существуют ли файлы. Я хочу знать, существуют ли они (их может быть больше одного), и добавить их в список / скажите, какие из трех файлов существуют.
Как я могу изменить свой код для достижения этой цели?