【发布时间】:2020-05-30 16:51:52
【问题描述】:
我有一个文件名列表,我需要根据字符串中的某个部分对其进行排序。但是,它仅在我将文件扩展名作为排序字典的一部分时才有效。如果文件是 .jpg 或 .png,我希望它能够正常工作,所以我试图在 '_' 和 '.' 上进行拆分。字符。
sorting = ['FRONT', 'BACK', 'LEFT', 'RIGHT', 'INGREDIENTS', 'INSTRUCTIONS', 'INFO', 'NUTRITION', 'PRODUCT']
filelist = ['3006345_2234661_ENG_PRODUCT.jpg', '3006345_2234661_ENG_FRONT.jpg', '3006345_2234661_ENG_LEFT.jpg', '3006345_2234661_ENG_RIGHT.jpg', '3006345_2234661_ENG_BACK.jpg', '3006345_2234661_ENG_INGREDIENTS.jpg', '3006345_2234661_ENG_NUTRITION.jpg', '3006345_2234661_ENG_INSTRUCTIONS.jpg', '3006345_2234661_ENG_INFO.jpg']
sort = sorted(filelist, key = lambda x : sorting.index(x.re.split('_|.')[3]))
print(sort)
这会返回错误“AttributeError: 'str' object has no attribute 're'”
我需要做什么才能同时拆分 _ 和 .当拆分我的字符串进行排序时?我只想使用拆分进行排序,而不是重新形成字符串。
【问题讨论】:
-
试试
x.split而不是x.re.split -
这能回答你的问题吗? Split string based on a regular expression
-
这给出了一个错误“IndexError: list index out of range”,我认为这意味着它没有进行足够的拆分来到达 [3] 索引。
-
re.split将第一个参数作为正则表达式,第二个作为数据输入,因此您的语法应该类似于re.split('_|.', x)[3],如下面的评论中所述。 -
请分享整个错误信息。
标签: python regex string split attributeerror