Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:只检测特定字符串,而不是它';词典的变体_Python_String_Dictionary - Fatal编程技术网

Python:只检测特定字符串,而不是它';词典的变体

Python:只检测特定字符串,而不是它';词典的变体,python,string,dictionary,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': 'Netw

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

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\u data.txt'
未检测到
'Network\u data.txt'
,这是因为
Network
可以在
'Network\u data.txt'
'Network\u data.txt'
中找到。你需要比这更多的东西来获得一个独特的匹配

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

if name+'_' in file_names: