如何获取每个文件的目录名称?

how to get the directory names for every file?

root
--- audi    (dirs)
           ---11 01012020.csv  (files)
           ---01 102020.csv
--- bmw
            ---66  10052020.csv
            ---43  11112020.csv
--- mercedes
             ---34  21062020.csv
             ---23  30112020.csv

以上是我的根目录、目录和路径的结构。我想得到 3 样东西。 carfile_iddate

  1. Car是目录名
  2. file_id 是第一个拆分(又名 文件名中第一个空格之前的所有内容)
  3. date 是之后的一切 文件名中的第一个空格..

这是我的代码:

for root, dirs, files in os.walk(path_root):
    for file in files:
        if file.endswith('.csv'):
            file_id = file.split()[0]
            date = re.search(' (\d+).', file).group(1)
            car = ? idk how to get this one.

如您所见,我成功获得了 file_iddate。现在我想获取每个文件的汽车名称(directroy 名称)...实现该目标的最简单方法是什么?

root变量包含当前目录;你想要汽车的最后一个部件。

for root, dirs, files in os.walk(path_root):
    for file in files:
        if file.endswith('.csv'):
            file_id = file.split()[0]
            date = re.search(' (\d+).', file).group(1)
            car = os.path.basename(root)

如果您的文件名具有代表性,那么您实际上不需要正则表达式来提取日期。也许 file.split()[1].split('.')[0]