我正在使用 Python 3.5 来分析 csv 文件中包含的数据。这些文件包含在“figs”目录中,该目录包含在 case 目录中,该目录包含在整个数据目录中,例如:
/strm1/serino/DATA/06052009/figs
或更一般地说:
/strm1/serino/DATA/ case_date_in_MMDDYYYY /figs
我开始的目录是'/strm1/serino/DATA/',每个子目录是我正在处理的案例的月、日和年。每个子目录都包含另一个名为“figs”的子目录,这是每个案例的 csv 文件的位置。准确地说:
/strm1/serino/DATA/ case_date_in_MMDDYYYY /figs/ case_date_in_MMDDYYYY .csv
所以,我想从我的 DATA 目录开始,并通过它的子目录找到那些具有 MMDDYYYY 命名的目录。但是,某些案例目录的名称可能在末尾带有州缩写,例如:“06052009_TX”。因此,与其完全匹配 MMDDYYYY 命名,不如验证目录名称是否包含任何数字 1 到 9 一样简单。
一旦我进入第一个子目录(案例目录),我想进入“figs”子目录。在那里,我想使用与第一个子目录(案例目录)相同的命名约定来访问 csv 文件。我将使用每个 csv 文件中包含的数据填充现有数组。
基本上,我的问题涉及浏览多个匹配特定命名约定的子目录并最终在“末尾”访问数据文件。我很天真地玩弄 glob、fnmatch、os.listdir 和 os.walk,但我无法得到足够接近工作的任何东西,我认为将其包含在内会有所帮助。我对这些模块不是很熟悉。我可以包括的是我想要的:
for dirs in data_dir that contain a number:
go into this directory
go into 'figs' directory
read data from the csv file whose name matches its case directory name (or whose name format matches the case directory name format)
我遇到了相关问题,但我无法以我想要的方式应用他们的答案,尤其是嵌套目录。我非常感谢您的帮助,如果我需要澄清任何事情,请告诉我。