python - 如何仅使用子目录的名称查找特定深层子目录的路径?
问题描述
我想将文件移动到子目录中。该子目录位于多个子目录中。我只有父目录的名称和我希望文件进入的子目录的名称。我不知道父目录和目标子目录之间的子目录,并且需要找到该子目录及其绝对路径的位置,以便我可以将文件移动到该子目录中。
我试过 os.path.isdir() 和 os.path.exists() 来搜索我的子目录,但搜索似乎没有搜索到所有子目录。
import os
def find_dir(name, start):
for root, dirs, files in os.walk("."):
for d in dirs:
if d == name:
return os.path.abspath(os.path.join(root, d))
subdir_name = 'Shanahan,Austin-1234'
starting_dir = r'C:\Users\austin.shanahan\Desktop\PeopleTest'
print(find_dir(subdir_name, starting_dir)) # returns "None"
***在 PeopleTest 目录的深处有一个名为 Shanahan,Austin-1234 的子目录。在目录 PeopleTest 和子目录 Shanahan,Austin-1234 之间有两个子目录。我需要在所有这些中找到 Shanahan,Austin-1234 并输出绝对路径。
解决方案
像这样的东西?
布局:
.
-> dir1
-> dir2
-> first.last-0000
代码:
import os
def find_dir(name, start):
for root, dirs, files in os.walk(start):
for d in dirs:
if d == name:
return os.path.abspath(os.path.join(root, d))
subdir_name = 'first.last-0000'
starting_dir = 'C:/users/me/desktop/peopleTest'
print(find_dir(subdir_name, starting_dir))
结果:
C:\Users\me\Desktop\peopleTest\dir1\dir2\first.last-0000
推荐阅读
- python - 类型为“NoneType”的 /signup 对象的 TypeError 没有 len()
- sql - 如何使用列值作为间隔来增加 Oracle SQL 中的日期?
- angular - 断言错误:传入的类型不是 ComponentType,它没有 'ɵcmp' 属性
- r - 基于列分组
- spring - 在 Spring App 中存储不经常更改的信息
- reactjs - React Native:[Expo] 从相机胶卷拍摄的图像中捕获主要颜色的库?
- postgresql - 提高父表中的 PostgreSQL SELECT 性能(继承)
- c# - 从 Exchange 而不是 Outlook 获取联系人
- javascript - 尝试将 reCatchpha 添加到项目时出现 403 错误
- unity3d - 如何在 Unity 中生成不重复的随机数