所以我有 2 个具有 2 种不同文件类型(例如 .csv、.png)但具有相同基本名称(例如 1001_12_15.csv、1001_12_15.png)的目录。我在每个目录中有数千个文件。
我想要做的是在匹配基本名称之后获取文件的完整路径,然后对两个文件的完整路径执行一些操作。
我正在寻求有关如何加快该过程的帮助。
我的做法是:
csvList=[a list with the full path of each .csv file]
pngList=[a list with the full path of each .png file]
for i in range(0,len(csvlist)):
csv_base = os.path.basename(csvList[i])
#eg 1001
csv_id = os.path.splitext(fits_base)[0].split("_")[0]
for j in range(0, len(pngList)):
png_base = os.path.basename(pngList[j])
png_id = os.path.splitext(png_base)[0].split("_")[0]
if float(png_id) == float(csv_id):
DO SOMETHING
此外,我尝试了 fnmatch 类似的东西:
for csv_file in csvList:
try:
csv_base = os.path.basename(csv_file)
csv_id = os.path.splitext(csv_base)[0].split("_")[0]
rel_path = "/path/to/file"
pattern = "*" + csv_id + "*.png"
reg_match = fnmatch.filter(pngList, pattern)
reg_match=" ".join(str(x) for x in reg_match)
if reg_match:
DO something
似乎使用嵌套的 for 循环更快。但我希望它更快。还有其他方法可以加快我的代码吗?