【发布时间】:2020-05-20 07:37:44
【问题描述】:
我需要在 Linux 服务器上递归搜索目录/子目录以查找特定名称的目录并检索这些特定目录中的文件。我尝试了两种方法,一种是导入 os 并调用 os.walk,另一种是从 os 导入 walk。代码如下:
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' has no attribute 'walk' 的错误,当我从 os 导入 walk 并调用 os 时,我得到了错误'ImportError:无法导入名称步行'。
这个脚本确实连接到 WLST,所以我想我可能遇到了冲突,但没有找到任何表明这种情况的东西。
【问题讨论】:
-
这看起来不像是 Python 错误。这是javarish。这是 Jython 吗?
-
@KlausD。据我了解,这是python。我对任何类型的 python 编码都不熟悉,但我一直使用的所有格式和语法看起来都是 python。我快速搜索了差异,这让我相信我只是在使用 python。
-
我确实有一些 java 导入,但我尝试删除这些以及任何相关代码进行测试,但没有任何效果。
-
如何运行代码?
-
我有一个运行“java -Dweblogic.security.allowCryptoJDefaultPRNG=true -Dweblogic.security.allowCryptoJDefaultJCEVerification=true weblogic.WLST /apps/config/scripts/test/libComparison.py”的启动器该行的java部分将代码转换为jython?我承认我使用该行是因为其他人已将其用于他们的脚本。
标签: python linux python-2.x wlst