gpt4 book ai didi

Python正则表达式匹配file-date.txt

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:43 25 4
gpt4 key购买 nike

我正在尝试匹配格式为 filename-isodate.txt 的文件名

>>> DATE_NAME_PATTERN = re.compile("((.*)(-[0-9]{8})?)\\.txt")
>>> DATE_NAME_PATTERN.match("myfile-20101019.txt").groups()
('myfile-20101019', 'myfile-20101019', None)

但是我需要在单独的组中获取文件名和 -isodate 部分。

任何建议和/或解释将不胜感激

最佳答案

如果您知道文件名格式不会改变,则不需要re:

filename = 'myfile-20101019.txt'
basename, extension = filename.rsplit('.', 1)
firstpart, date = basename.rsplit('-', 1)


In : firstpart, date, extension
Out: ('myfile', '20101019', 'txt')

或者只是没有扩展名:

firstpart, date = filename.rsplit('.', 1)[0].rsplit('-', 1)
# ['myfile', '20101019']

也适用于更复杂的文件名:

filename = 'more.complicated-filename-20101004.txt'
firstpart, date = filename.rsplit('.', 1)[0].rsplit('-', 1)
# ['more.complicated-filename', '20101004']

或者,只是为了更好地拆分扩展:

import os

filename = 'more.complicated-filename-20101004.txt'
firstpart, date = os.path.splitext(filename)[0].rsplit('-', 1)
# ['more.complicated-filename', '20101004']

关于Python正则表达式匹配file-date.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com