web-dev-qa-db-ja.com

Python 3の関数を翻訳

Python 3を使用しており、ファイル名に数字がないように翻訳したい。翻訳関数は、Python 3。ファイル名を数字なしに翻訳できますか?

これは機能しないコードブロックです。

file_name = "123hello.jpg"
file_name.translate(None, "0123456789")

ありがとう

17
Dean Clancy

str.translate はまだありますが、インターフェースが少し変更されました:

>>> table = str.maketrans(dict.fromkeys('0123456789'))
>>> '123hello.jpg'.translate(table)
'hello.jpg'
34
wim

.translateは変換テーブルを受け取ります。

指定された変換テーブルを介して各文字がマッピングされた文字列Sのコピーを返します。テーブルは、getitemを使用してルックアップ/インデックス作成を実装する必要があります。たとえば、辞書またはリスト、Unicode順序をUnicode順序、文字列、またはNoneにマッピングする必要があります。この操作でLookupErrorが発生した場合、文字はそのまま残されます。 Noneにマップされた文字は削除されます。

次のようなことができます:

>>> file_name = "123hello.jpg"
>>> file_name.translate({ord(c):'' for c in "1234567890"})
'hello.jpg'
>>>
5

Ver3.6.1を使用していますが、翻訳が機能しませんでした。うまくいったのは、次のようなstrip()メソッドです。

file_name = 123hello.jpg

file_name.strip('123')
5
Mativo

左から数字のみを削除

new_name = str.lstrip('1234567890')

右側から数字のみを削除

new_name = str.rstrip('123456780')

左右から数字を削除

new_name = str.strip('1234567890')

すべての番号を削除

new_name = str.translate(str.maketrans('', '', '1234567890'))
3
udit sharma