Python 3を使用しており、ファイル名に数字がないように翻訳したい。翻訳関数は、Python 3。ファイル名を数字なしに翻訳できますか?
これは機能しないコードブロックです。
file_name = "123hello.jpg"
file_name.translate(None, "0123456789")
ありがとう
str.translate
はまだありますが、インターフェースが少し変更されました:
>>> table = str.maketrans(dict.fromkeys('0123456789'))
>>> '123hello.jpg'.translate(table)
'hello.jpg'
.translate
は変換テーブルを受け取ります。
指定された変換テーブルを介して各文字がマッピングされた文字列Sのコピーを返します。テーブルは、getitemを使用してルックアップ/インデックス作成を実装する必要があります。たとえば、辞書またはリスト、Unicode順序をUnicode順序、文字列、またはNoneにマッピングする必要があります。この操作でLookupErrorが発生した場合、文字はそのまま残されます。 Noneにマップされた文字は削除されます。
次のようなことができます:
>>> file_name = "123hello.jpg"
>>> file_name.translate({ord(c):'' for c in "1234567890"})
'hello.jpg'
>>>
Ver3.6.1を使用していますが、翻訳が機能しませんでした。うまくいったのは、次のようなstrip()メソッドです。
file_name = 123hello.jpg
file_name.strip('123')
左から数字のみを削除
new_name = str.lstrip('1234567890')
右側から数字のみを削除
new_name = str.rstrip('123456780')
左右から数字を削除
new_name = str.strip('1234567890')
すべての番号を削除
new_name = str.translate(str.maketrans('', '', '1234567890'))