【发布时间】:2020-11-25 07:03:42
【问题描述】:
我有一个目录中具有不同名称的文件列表,我需要根据优先级一次转换所有文件。以“AB”开头的文件比以“CD”开头的文件具有更高的优先级。在每个集合中,按名称升序排列文件并选择第一个。
输入:
AB_2908_02P.xml
CD_2908_02P.xml
代码:
def Send_Request(self):
Directory = "c://users/request/"
#Type = 'AB','CD'
xml_files = Type + '_' + '2908_02P' + '.xml'
if os.path.exists(Directory+xml_files):
for file in os.listdir(Directory):
#AB_2908_02P.xml
#CD_2908_02P.xml
if file.startswith('AB'):
print ("first priority")
elif file.startswith('CD'):
print("second priority")
谁能告诉我使用优先队列的最佳方式是什么?
【问题讨论】:
-
请提供一个更直观的输入输出示例,我不明白这个问题的具体说明。
-
为什么你认为优先队列是一个好主意?如果您认为这是个好主意,请阅读
heapq上的文档 -
欢迎您!您能否一次获得完整列表并设置优先级,而不会有在此过程中出现新文件的风险?如果是这样,只需创建两个空列表,循环文件名并将它们附加到相应的列表中,对列表进行排序并连接它们
-
...既然 AB 的优先级比 CD 高,为什么不按照文件名的字典顺序对所有文件的列表进行排序?例如
for file in sorted(os.listdir(Directory))。这将首先自动迭代 AB 文件... -
@mrxra 这只是我提到的一个例子
标签: python priority-queue