我正在尝试接收给定路径中的所有文件,并根据我的数据标题名称对它们进行排序。 所以我的数据标题名称是:
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'
答案 0 :(得分:1)
这是因为Network
和 'Network_data.txt'
都可以找到'Network#2_data.txt'
。您需要的不仅仅是获得独特的匹配。
由于可以通过添加_
来区分这两个名称,因此您可以通过将测试更改为
if name+'_' in file_names: