我需要找到一个特定模式名的文件是否在当前目录中可用。为此,我使用了以下代码
H1 = []
for record_name in my_list:
file_name = 'RSN' + '_' + record_name[0:5] + '*' + record_name[-8:]
H1 += glob.glob(record_name)
应该注意的是,我使用上述方法是因为在某些情况下,当前目录中可用的记录名称和文件的真实名称之间存在一些差异。例如,我的一个文件的真实名称是“RSN20148\u BB40204628\u KRPHHZ”,而我的\u列表中有“20148\u 40204628\u KRPHHZ”。请注意,第二个没有“RSN”和“BB”术语
上面的步骤是可行的,但问题是它需要很多时间。有什么减少时间的建议吗?
请注意,我不能使用os.listdir()
获取所有文件的名称,因为我的\列表中文件的顺序对我很重要
也许你可以实现一个算法,如果记录名是唯一的,你可以创建一个字典(orderedDict如果Python<;3.6否则默认情况下,dict是有序的,所有记录名都设置为
False
然后使用带
os.path.exists(path)
的线程,根据记录是否存在,将该键设置为True
或False
。字典是O(1)
线程化的可能会提高性能最后一点-这是所有理论上的问题,您必须实施/优化自己,看看它是否能提高性能或增加不必要的开销
干杯
相关问题 更多 >
编程相关推荐