获取文件夹中所有文件的绝对路径,而无需遍历子文件夹

时间:2019-05-20 14:15:36

标签: python absolute-path

my_dir = "/raid/user/my_dir"

是我文件系统上的一个文件夹,该文件夹不是当前文件夹(即不是os.getcwd()的结果)。我想在my_dir中检索层次结构第一级中所有文件的绝对路径(即,my_dir中而不是{{1}的子文件夹中的所有文件的绝对路径) })作为字符串my_dir的列表。我需要它,以便以后使用absolute_paths删除那些文件。

这与

几乎相同

Get absolute paths of all files in a directory

但是区别是我不想遍历文件夹层次结构:我只需要层次结构第一级的文件(深度为0?在这里不确定术语)。

3 个答案:

答案 0 :(得分:1)

您可以使用os.path模块和列表理解。

import os

absolute_paths= [os.path.abspath(f) for f in os.listdir(my_dir) if os.path.isfile(f)]

答案 1 :(得分:1)

采用该解决方案很容易:只需拨打一次public class VoyageInformationAdapter extends RecyclerView.Adapter { private String i; if (i == "1"){ viewHolderBus.textV_from_city.setText(leg.getTo_city()); viewHolderBus.textV_to_city.setText(leg.getFrom_city()); }else{ viewHolderBus.textV_from_city.setText(leg.getFrom_city()); viewHolderBus.textV_to_city.setText(leg.getTo_city()); i = "1"; }} ,就不要继续:

os.walk()

答案 2 :(得分:1)

您可以使用os.scandir返回一个os.DirEntry对象,该对象具有多种选项,包括从目录中区分文件的功能。

with os.scandir(somePath) as it:
    paths = [entry.path for entry in it if entry.is_file()]
print(paths)

如果您还想列出目录,那么如果要在列表中查看它们,当然可以从列表理解中删除条件。

文档在listDir下也有此注释:

  

另请参见scandir()函数返回目录条目以及文件属性信息,从而为许多常见用例提供更好的性能。