Python 从子目录返回上次创建的csv文件

Python 从子目录返回上次创建的csv文件,python,glob,os.walk,os.path,Python,Glob,Os.walk,Os.path,这是我的目录结构。我想进入以F3E3开头的子目录,然后返回文件名中包含0.1Hz的csv。在文件名中包含0.1Hz的每个子目录中有两个csv。我只想返回上次创建的文件 DATA F3E319 F3E319_TEST.csv F3E319_TEST_0.1Hz_11_21.csv F3E319_TEST_0.1Hz_11_20.csv F3E319_TEST_0.1Hz.png F3E320

这是我的目录结构。我想进入以F3E3开头的子目录,然后返回文件名中包含0.1Hz的csv。在文件名中包含0.1Hz的每个子目录中有两个csv。我只想返回上次创建的文件

 DATA
      F3E319
        F3E319_TEST.csv
        F3E319_TEST_0.1Hz_11_21.csv
        F3E319_TEST_0.1Hz_11_20.csv
        F3E319_TEST_0.1Hz.png
      F3E320
        F3E320_TEST.csv
        F3E320_TESTTEST_0.1Hz_11_21.csv
        F3E320_TESTTEST_0.1Hz_11_20.csv
        F3E320_TEST_0.1Hz.png
      F3E321
        F3E320_TEST.csv
        F3E320_TEST2_0.1Hz_11_21.csv
        F3E320_TEST2_0.1Hz_11_20.csv
        F3E320_TEST_0.1Hz.png
      F3ES1
        F3ES1_TEST.csv
        F3ES1_TEST15_0.1Hz.csv
期望输出:

DATA\F3E319\F3E319_TEST_0.1Hz_11_21.csv
DATA\F3E320\F3E320_TESTTEST_0.1Hz_11_21.csv
DATA\F3E321\F3E320_TEST2_0.1Hz_11_21.csv
我一直在使用此代码查找0.1Hz的所有csv:

import os.path
keyword = "0.1Hz"
for dirpath, dirnames, filenames in os.walk(r"\DATA"):
    for filename in [f for f in filenames if f.endswith(".csv")]:
       if keyword in filename:
          print(os.path.join(dirpath, filename))
我不知道如何只进入以F3E3开头的子目录,以及如何只返回最后创建的0.1Hz的csv

我知道您可以这样做,但我不确定如何将其合并到我当前的代码中:

for file in glob.glob('\DATA\F3E3*):
  print file
您应该使用os.listdir迭代子目录和csv文件,以便更容易在子目录中找到最后创建的文件。由于获取文件创建时间可能因您使用的操作系统而异,请参见,我添加了creation_date函数,并使用它对csv文件列表进行排序

import os
import platform

def creation_date(path_to_file):
    if platform.system() == 'Windows':
        return os.path.getctime(path_to_file)
    else:
        stat = os.stat(path_to_file)
        try:
            return stat.st_birthtime
        except AttributeError:
            return stat.st_mtime

directory = "DATA"
subdirs = [os.path.join(directory, fl) for fl in os.listdir(directory) if fl.startswith("F3E3")]
for subdir in subdirs:
    filenames = [os.path.join(subdir, fl) for fl in os.listdir(subdir) if fl.endswith(".csv") and ("0.1Hz" in fl)]
    filenames=sorted(filenames, key=creation_date, reverse=True)
    print(filenames[0])