Python:仅检测特定字符串而不是字典的变体

时间:2016-05-26 11:22:19

标签: python string dictionary

我正在尝试接收给定路径中的所有文件,并根据我的数据标题名称对它们进行排序。 所以我的数据标题名称是:

data_titles = ['CPU','Physical_Disk','Memory','Network','Network#2']

此给定路径中的文件的名称类似于'CPU_data.txt''Memory_data.txt''Network_data.txt''Network#2_data.txt'等。

我正试图以以下方式创建一个dicitonary:

{'Network': 'Network_data.txt', 
 'Network#2': 'Network#2_data.txt', 
 'Physical_Disk': ['Physical_Disk_data_1.txt','Physical_Disk_data_2.txt'], 
 'CPU': 'CPU_data.txt', 
 'Memory': 'Memory_data.txt'}

然而我实际得到的是:

{'Network': ['Network_data.txt','Network#2_data.txt'], 
 'Network#2': ['Network#2_data.txt'], 
 'Physical_Disk': ['Physical_Disk_data_1.txt','Physical_Disk_data_2.txt'], 
 'CPU': ['CPU_data.txt'], 
 'Memory': ['Memory_data.txt']}

这是我的代码:

table_csv_files={}
    for file_names in os.listdir(Data_folder):
        for name in data_titles:
            if name in file_names:
                if name in table_csv_files:
                    table_csv_files[name].update(file_names)
                else:
                    table_csv_files[name]=[file_names]

                print table_csv_files

如何确保仅检测到数据标题'Network' 'Network_data.txt' 'Network#2_data.txt'

1 个答案:

答案 0 :(得分:1)

这是因为Network 'Network_data.txt'都可以找到'Network#2_data.txt'。您需要的不仅仅是获得独特的匹配。

由于可以通过添加_来区分这两个名称,因此您可以通过将测试更改为

来轻松解决此问题。
if name+'_' in file_names: