Почему я получаю сообщение об ошибке импорта os.walk в python2 .7 - PullRequest
0 голосов
/ 04 февраля 2020

Мне нужно рекурсивно искать каталоги / подкаталоги на сервере 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, поэтому я подумал, что, возможно, у меня возник конфликт, но я ничего не нашел указать такое.

1 Ответ

0 голосов
/ 05 февраля 2020

Функция должна быть импортирована из os.path:

from os.path import walk
...