我要重命名的文件夹中有一组文件。格式为:
lesson1
lesson2
.....
lesson11
lesson99
lesson100
lesson130
在Windows中排序时,顺序是我的字符串,因此不正确(示例):
lesson1
lesson100
我想成为(重命名):
_001_lesson
_010_lesson
如何在字符串“教训”的末尾捕捉/分割编号部分?
在字符串不固定的情况下(如本课所述),这是更复杂的情况:
title abc1
title def2
title acr 3
答案 0 :(得分:2)
我建议使用python's re module
以下内容import re
def rename(old_name):
# Run a Regex to find the ending number
match = re.search('lesson(\d+)', old_name)
# If that was a match (that should be necessary, but
# checking input is always a good idea)
if match:
# Retrieves the id and converts it to an integer
id = int(match.group(1))
# Gets the formatted name out
return '_{:03d}_lesson'.format(id)
return None
这是非常模块化的。下次您想解析相似的文件名时,可以更改正则表达式:)。
答案 1 :(得分:1)
对于固定字符串,可以使用split
方法:
Number = "lesson123".split("lesson")[1] # "123"
Title = "lesson123".split(Number)[0] # "lesson"
对于_001_lesson
,您可以这样写,假设您需要在数字前添加N个额外的零。
New_name = "_" + N*"0" + "%d_%s" %(Number, Title)
对于另一个示例,我知道您想抓住“标题”之后的所有字符?
Number = "title acr 3".split("title")[1] # " acr 3"
Title = "title acr 3".split(Number)[0] # "title"
如果您对这些多余的空格感到恼火,可以使用strip
或replace
将其删除:
Clean_number = Number.strip(" ")
# or
Clean_number = Number.replace(" ", "")