需要Python文件名验证帮助

2024-10-03 06:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

错误的文件名示例:foo is-not_bar-3.mp4 应该是什么:foo_is_not_bar-3.mp4

我只想为字符串的最后一位保留一个-,如果它是后跟扩展名的数字。到目前为止,我得到的最接近的代码是:

fname = 'foo is-not_bar-3.mp4'
valchars = '-_. %s%s' % (string.ascii_letters, string.digits)
f = ''.join(c for c in fname if c in valchars).replace(' ', '_').replace('-', '_')

Tags: 字符串in示例stringfoois文件名错误
1条回答
网友
1楼 · 发布于 2024-10-03 06:21:48

您可以使用带有负展望的regex替换:

import re

fname = 'foo is-not_bar-3.mp4'
f = re.sub(r'\s|-(?!\d+)', '_', fname)
print(f)
>> 'foo_is_not_bar-3.mp4'

这将用_替换每个-和空格,除非后跟一个数字。你知道吗

相关问题 更多 >