如何删除文件夹名称和文件名称的“最后的空格”?

如何删除文件夹名称和文件名称的“最后的空格”?

我有 600GB 的 Mac 用户数据,保存在 HFS+ 格式的磁盘中。许多文件夹和文件名包含“结尾空格”。我不知道用户是如何插入这些空格的,但结果是通过 Samba,名为“Customer ABC”(带有结尾空格)的文件夹变成了例如“EHFJ~1”。此外,用户还使用了特殊字符(如 •)和其他奇怪的文件名。

如何批量重命名文件/文件夹并删除末尾的空格?是否可以使用 Linux / Mac OS 脚本?

谢谢

答案1

我编写了一个小型 Python 脚本来从文件名中删除所有字符,这使得在 *nix 下处理它们变得困难。

或许这也能帮助你。

#! /usr/bin/python
# -*- coding: UTF-8 -*-

"""
usage: fixFileNames.py FILE...

Renames FILEs to sensible names, avoiding collision. 
"""

import sys
import os
from string import maketrans

def fixFileName(file):
    '''
    move file to filename:
    - without spaces, pipe characters, quotes
    '''
    intab = ' |'
    outtab = '__'
    trantab = maketrans(intab, outtab)
    newFileName = file.translate(trantab, '\'\"').replace('_-_', '-')
    if file != newFileName:
        #only renames file if it's name contains any unwanted characters
        if os.path.exists(newFileName):
            print "ERROR: Not renaming %s, %s exists already" % (file, newFileName)
        else:
            print "renaming %s to %s" % (file, newFileName)
            os.rename(file, newFileName)
#    else:
#        print "file %s and newFilename %s are equal" % (file, newFileName)

if __name__ == "__main__":
    if not len(sys.argv) > 1:
        print __doc__
        sys.exit(1)
    for file in sys.argv[1:]:
        fixFileName(file)

任何人都可以自由使用或改进它。如果您有任何改进,我很乐意听取您的意见。

答案2

是的!我不知道具体怎么做,但既然还没有其他人回答这个问题,我认为总比没有好。使用一些匹配最后空格的正则表达式应该是可能的。但我不知道如何获取文件名的截断部分

相关内容