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 に答える