从文件名/string中删除非数字

2024-04-25 22:06:05 发布

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

假设我有大量文件需要格式化,以便应用程序更好地访问

当前文件名可能如下所示:

035 - Springfield, MA.pdf

我的应用程序引用对象的方式是使用文件前缀的id,因此我开始在下面进行批量重命名:

def rename(dir, pattern):
    import glob, os
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
        print(title)
        os.rename(pathAndFilename, 
            os.path.join(dir, % title + ext))

现在我可以通过以下命令重命名所有地图:

import scripts as a    
a.rename(r'c:\tools\storeMaps', r'*.pdf')

我希望文件名的输出仅仅是ID+map,所以我知道我可以很容易地加入map,但是我在有效地从文件名中删除所有非数字时遇到了一些问题


Tags: pathimport应用程序pdftitleos文件名dir
1条回答
网友
1楼 · 发布于 2024-04-25 22:06:05

我找到了re的乐趣来解决这个问题

def rename(dir, pattern):
    import glob, os, re
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
        print(title)
        new_title = re.sub("\D", "", title)
        os.rename(pathAndFilename, 
            os.path.join(dir, new_title + ext))

new_title = re.sub("\D", "", title)将从title中删除任何非数字

相关问题 更多 >