Мне нужно рекурсивно искать каталоги/подкаталоги на сервере Linux для каталогов с определенными именами и извлекать файлы в этих конкретных каталогах. Я пробовал 2 подхода: в одном я импортирую os и вызываю os.walk, а в другом я импортирую walk из os. Код ниже:
def getDeployedLibraries():
serverConfig()
path = 'somePath'
deployments = cmo.getLibraries()
print(divider)
print("Library Deployments:" )
print(divider)
if deployments:
deployedLibs = []
stagedLibs = []
archiveLibs = []
for dep in deployments:
full_name = dep.getName()
path = dep.getAbsoluteSourcePath()
deployedLibs.append(path+full_name)
for (dirpath, dirnames, files) in os.walk(path):
for name in dirnames:
if name != "shared-lib":
dirnames.remove(name)
for file in files:
stagedLibs.append(file)
for sLib in stagedLibs:
if sLib not in deployedLibs:
archiveLibs.append(sLib)
f = open("filesToArchive.txt","w")
f.write("\n".join(archiveLibs))
f.close()
else:
deploymentsList.append("No deployments of this type installed.")
domainConfig()
return deploymentsList
Когда я просто импортирую os и вызываю os.walk, я получаю сообщение об ошибке AttributeError: class 'org.python.modules.os' не имеет атрибута 'walk', и когда я импортирую os из os и просто вызываю os, я получаю сообщение об ошибке "ImportError : не могу импортировать имя walk'.
Этот сценарий подключается к WLST, поэтому я подумал, что, возможно, у меня возник конфликт, но не нашел ничего, что указывало бы на это.