走目录
Walking directories
我正在搜索特定目录 (/android)。
我知道在 python 中我可以使用 os.walk(root_dir) 遍历目录但是这里的问题是我不知道我正在寻找的目录是否是root_dir 的子目录或其父目录 root_dir.
有没有和os.walk()执行相同操作但方式相反的方法?
谢谢。
您可以使用 os.path.abspath()
中的 ..
转到 root_dir
的父目录。
import os
parent_dir = os.path.abspath(os.path.join(root_dir, ".."))
现在 parent_dir
中有 root_dir
个 parent_directory
,你可以 root_dir
并再次使用 os.walk(root_dir)
。
这是我选择的解决方案,但是在解析复制文件的绝对路径时出现错误。
我得到这个错误,我认为这是因为我需要绝对路径,有人知道如何从目录列表中获取绝对路径吗?
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))
我用这段代码解决了这个问题:
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))
我正在搜索特定目录 (/android)。
我知道在 python 中我可以使用 os.walk(root_dir) 遍历目录但是这里的问题是我不知道我正在寻找的目录是否是root_dir 的子目录或其父目录 root_dir.
有没有和os.walk()执行相同操作但方式相反的方法?
谢谢。
您可以使用 os.path.abspath()
中的 ..
转到 root_dir
的父目录。
import os
parent_dir = os.path.abspath(os.path.join(root_dir, ".."))
现在 parent_dir
中有 root_dir
个 parent_directory
,你可以 root_dir
并再次使用 os.walk(root_dir)
。
这是我选择的解决方案,但是在解析复制文件的绝对路径时出现错误。 我得到这个错误,我认为这是因为我需要绝对路径,有人知道如何从目录列表中获取绝对路径吗?
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))
我用这段代码解决了这个问题:
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))