Python:如何仅获取目录中的第一个文件名

Python:如何仅获取目录中的第一个文件名,python,path,filenames,Python,Path,Filenames,我有各种目录的路径。现在我想查看每个目录中第一个文件的头信息 例如:path=“Users/SDB/case\u 23/scan\u 1” 现在在子目录scan_1中,我想检查一些标题信息。为此,如何获取子目录中第一个文件(按名称)的完整路径和名称? os.walk(top,top-down=True,onerror=None,followlinks=False) 通过自顶向下或自底向上遍历目录树来生成目录树中的文件名。对于树中以目录top为根的每个目录(包括top本身),它将生成一个3元组(d

我有各种目录的路径。现在我想查看每个目录中第一个文件的头信息

例如:
path=“Users/SDB/case\u 23/scan\u 1”

现在在子目录
scan_1
中,我想检查一些标题信息。为此,如何获取子目录中第一个文件(按名称)的完整路径和名称?

os.walk(top,top-down=True,onerror=None,followlinks=False)
通过自顶向下或自底向上遍历目录树来生成目录树中的文件名。对于树中以目录top为根的每个目录(包括top本身),它将生成一个3元组
(dirpath、dirnames、filenames)

示例

dirs结构

$ tree -d
.
└── users
    └── sdb
        └── case_23
            └── scan_1
$ tree
.
├── a.txt
├── b.txt
├── c.txt
└── users
    ├── a.txt
    ├── b.txt
    ├── c.txt
    └── sdb
        ├── a.txt
        ├── b.txt
        ├── c.txt
        └── case_23
            ├── d.txt
            ├── e.txt
            ├── f.txt
            └── scan_1
                ├── a.txt
                ├── b.txt
                └── c.txt
dirs+文件结构

$ tree -d
.
└── users
    └── sdb
        └── case_23
            └── scan_1
$ tree
.
├── a.txt
├── b.txt
├── c.txt
└── users
    ├── a.txt
    ├── b.txt
    ├── c.txt
    └── sdb
        ├── a.txt
        ├── b.txt
        ├── c.txt
        └── case_23
            ├── d.txt
            ├── e.txt
            ├── f.txt
            └── scan_1
                ├── a.txt
                ├── b.txt
                └── c.txt
python代码

>>> import os
>>> rootdir = '/tmp/so'
>>> # print full path for first file in rootdir and for each subdir
... for topdir, dirs, files in os.walk(rootdir):
...     firstfile = sorted(files)[0]
...     print os.path.join(topdir, firstfile)
... 
/tmp/so/a.txt
/tmp/so/users/a.txt
/tmp/so/users/sdb/a.txt
/tmp/so/users/sdb/case_23/d.txt
/tmp/so/users/sdb/case_23/scan_1/a.txt


第一个文件是什么意思?listdir没有命令,所以使用它可能无法获取任何第一个文件。@PadraicCanningham当然可以,但第一个文件是什么意思?按名称、日期、修改时间排序?;)这就是我问OP的问题。现在我不知道这个问题的意思,所以投票决定结束。当OP已经在使用它时,也不确定为什么需要完整的路径@帕德雷坎宁厄姆同意,这就是为什么我也给出了一个“抽象”的答案。谢谢你的回答。对不起,我没说清楚。我正在按名称查找目录中的第一个文件。