1

我想通过 bash 将许多文件中的所有特殊字符重命名为下划线。因为我发现我无法使用 bash 我想使用 python 来做到这一点。这是我的 bash 代码:

#!/bin/bash
find /home/dave/files/ -depth -execdir rename '
s/ä/ae/g;
s/ö/oe/g;
s/ü/ue/g;
s/Ä/Ae/g;
s/Ö/Oe/g;
s/Ü/Ue/g;
s/ß/ss/g;
s/\x3C/_/g; # <
s/\x3E/_/g; # >
s/\x5C/_/g; # \
s/\x3A/_/g; # :
s/\x3F/_/g; # ?
s/\x2A/_/g; # *
s/\x7C/_/g; # |
s/\x22/_/g; # "
' -v "{}" \;
echo "Done"

不幸的是,我对 python 的经验很少,而且我找不到很多类似的例子。你能帮助我吗?

4

1 回答 1

2

创建带有翻译的字典:

trans = {'ä': 'ae',
         'Ä': 'Ae', ... }

可以使用 访问trans.get(char, char),如果可翻译,则返回已翻译的字符,否则返回字符本身。

使用这一行翻译文件名:

new_name = ''.join(trans.get(char, char) for char in old_name)

现在列出您要重命名和应用的所有文件

os.rename(old_name, new_name)
于 2013-03-07T14:38:26.807 回答