我需要根据每个段落中使用的文件名按字母顺序对段落进行排序。下面是一个示例(文本文件中有大约200个这样的段落):
------------------------------------------------------------------
L:hwqw\se\hf8594.txt
File Creation Date: September 07, 2004
Identifier #: hf8594.tif
Image Pixels (meters): 1.25
Format: 8 bit TIFF
------------------------------------------------------------------
L:hhtk\ha8421.txt
File Creation Date: September 07, 2004
Identifier #: ha8421.tif
Image Pixels (meters): 1.25
Format: 8 bit TIFF
现在我需要根据Identifier #
对段落进行排序(标识符与顶部的文本文件同名,但文本文件位于不同的子文件夹中,所以我认为最好使用标识符)。
答案 0 :(得分:3)
这可以使用
来实现paragraph_sep = "------------------------------------------------------------------\n"
paragraphs = paragraph_str.split(paragraph_sep)[1:]
import re
s = 'Identifier #: hf8594.tif'
comp = re.compile("Identifier #: \s* (.*tif)")
a = re.search(comp, s)
a.groups()
=> ('hf8594.tif',)
请注意,您可以轻松传递一个功能,将键设置为排序功能。
comp = re.compile("Identifier #: \s* (.*tif)")
def get_id_from_string(s):
ids = re.search(comp, s)
return ids[0]
paragraphs.sort(key=get_id_from_string)
使用sep.join(paragraphs)
您现在有不同的步骤,希望它有所帮助。