0

我正在寻找一个特定的目录 (/android)。

我知道在 python 中我可以使用 os.walk(root_dir) 遍历目录,但这里的问题是我不知道我要查找的目录是 root_dir 的子目录还是 root_dir 的父目录。

是否有任何方法可以执行与 os.walk() 相同但以相反方式执行的操作?

谢谢。

4

3 回答 3

2

root_dir您可以使用..in转到父目录os.path.abspath()

import os
parent_dir = os.path.abspath(os.path.join(root_dir, ".."))

现在你有了parent_directoryin root_dirparent_dir你可以制作root_diros.walk(root_dir)再次使用。

于 2015-06-27T12:37:47.763 回答
0

这是我选择的解决方案,但是在解析复制文件的绝对路径时出现错误。我收到此错误,我认为这是因为我需要绝对路径,有人知道如何从目录列表中获取绝对路径吗?

FileNotFoundError: [Errno 2] No such file or directory: 'android\\MyCustomClass.smali'

这是我的代码:

def copy_my_custom_class(current_dir):
    subdirs = os.listdir(current_dir)       
    for subdir in subdirs:
        if (subdir == 'android'):       
            my_custom_class_path = os.path.join(subdir, 'MyCustomClass.smali')
            shutil.copyfile('./files/MyCustomClass.smali', my_custom_class_path)    

    copy_my_custom_class(os.chdir(current_dir))
于 2015-06-27T13:03:14.850 回答
0

我用这段代码解决了这个问题:

def copy_my_custom_class(current_dir):
    subdirs = os.listdir(current_dir)
    for subdir in subdirs:
        if (subdir == 'android'):   
            dest_file_path = os.path.join(current_dir, subdir, 'MyCustomClass.smali')
            shutil.copyfile('./files/MyCustomClass.smali', dest_file_path)  
            return 0

    copy_my_custom_class(os.path.dirname(current_dir))
于 2015-06-27T13:49:03.733 回答