我的目录结构如下所示。
MainFolder
|
[lib]
/ | \
[A] [B] [C] -- file1.so
| | file2.so
file1.so file1.so
file2.so file2.so
我正在尝试在该结构中查找有时可能不存在的“lib”文件夹。所以我使用以下方法检查“lib”文件夹是否存在:
if os.path.isdir(apkLocation + apkFolder + '/lib/'):
如果 lib 文件夹存在,那么我继续搜索“lib”中的文件夹。我必须存储文件夹 A、B 和 C 的名称,并查找以“.so”结尾的文件,其路径应存储为/lib/A/file1.so、/lib/A/file2.so 等等上。
if os.path.isdir(apkLocation + apkFolder + '/lib/'):
for root, dirs, files in os.walk(apkLocation + apkFolder):
for name in files:
if name.endswith(("lib", ".so")):
print os.path.abspath(name)
这给了我一个出路
file1.so
file2.so
file1.so
file2.so
file1.so
file2.so
期望的输出:
/lib/A/file1.so
/lib/A/file2.so
/lib/B/file1.so
/lib/B/file2.so
/lib/C/file1.so
/lib/C/file2.so
而且文件夹A、B、C也要分开保存。
最佳答案
必须加入当前目录和名称才能得到文件的绝对路径:
for root, dirs, files in os.walk(apkLocation + apkFolder):
for name in files:
if name.endswith(("lib", ".so")):
os.path.join(root, name)
它记录在这里 http://docs.python.org/3/library/os.html#os.walk ,也是。
关于python - 使用python在目录中搜索文件夹和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860679/