搜索包含部分名称的文件并添加到字典

2024-04-26 05:59:43 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我所有的文件都保存在某个目录下。你知道吗

dir ="/user/raw/samples"

我需要把所有以某个字符串结尾的文件放到dictionarydic_x中,另一个放到dictionarydic_z。你知道吗

以下是dir中的文件名:

SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L002_R1_001_MM_1.fz.gz
SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L002_R2_001_MM_1.fz.gz
SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L001_R2_001_MM_1.fz.gz
SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L001_R1_001_MM_1.fz.gz

我有两本字典

 import sys
import os
import subprocess
import glob
import fnmatch
import re
    listF = ['ALPH']
    FH_sample = listF
    dic_x = {}
    dic_z = {}

    for line in FH_sample:
        dic_x[line.strip().split('\n')[0]] =[]
        dic_z[line.strip().split('\n')[0]] =[]

        for root, sub, file in os.walk(dir):
            for name in file:
                if name.endswith(".fz.gz"):
                    m1 = re.search('(.*)_R1', file)
                    m2 = re.search('(.*)_R2', file)
                if m1 and m1.group(1) in dic_x:
                    dic_x[m1.group(1)].append(file)
                if m2 and m2.group(1) in dic_z:
                    dic_z[m2.group(1)].append(file)

但是,我无法通过上面的代码行获得字典中的所有值。我需要下列字典

dic_x = {'ALPH': ['SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L001_R1_001_MM_1.fz.gz','SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L002_R1_001_MM_1.fz.gz']}

dic_z = {'ALPH': ['SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L001_R2_001_MM_1.fz.gz','SAP_XCV_1980_H7LYVDRXX_2_ALPH_C_cR_c1_v1_0_FCDSSA_DDDD_S14_L002_R2_001_MM_1.fz.gz']}

现在dic_xdic_z看起来像这样

dic_z = {'ALPH': []}
dic_x = {'ALPH': []}

Tags: importcrmmv1sapgzc1dic
1条回答
网友
1楼 · 发布于 2024-04-26 05:59:43

你可以利用这个列表

import os
import fnmatch
path = "test_images/"
x_list = ([f for f in os.listdir(path) if fnmatch.fnmatch(f, "*.png")])
z_list= ([f for f in os.listdir(path) if fnmatch.fnmatch(f, "*.bmp")])
dic_x = {'ALPH' : x_list }
dic_z = {'ALPH': z_list}

在您的例子中,可以用*R1_001_MM_1.fz.gz替换*.png,用*R2_001_MM_1.fz.gz'替换*.bmp。也test_images//user/raw/samples/

相关问题 更多 >