Мне нужно рекурсивно искать каталоги / подкаталоги на сервере Linux для каталогов с указанными c именами и извлекать файлы в этих указанных c каталогах. Я испробовал 2 подхода, один из которых я импортирую из os и вызываю os.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, и когда я импортирую ходить из операционной системы и просто вызывать операционную систему. Я получаю сообщение об ошибке «ImportError: невозможно импортировать имя».
Этот сценарий подключается к WLST, поэтому я подумал, что, возможно, у меня возник конфликт, но я ничего не нашел указать такое.