1
次の関数を使用して、ファイル名から数値を削除しています。python 3でstr.translateに代わるものは何ですか?
import os
def rename_files():
file_list = os.listdir(r"C:\Users\X\Downloads\Compressed\prank\prank")
## print(file_list)
os.chdir(r"C:\Users\X\Downloads\Compressed\prank\prank")
print(os.getcwd())
for file_name in file_list:
os.rename(file_name, file_name.translate(None, "1234567890"))
rename_files()
これはPython 2では完全に機能しますが、Python 3では以下のエラーが発生します。
Traceback (most recent call last):
File "C:\Python34\rename_files.py", line 11, in <module>
rename_files()
File "C:\Python34\rename_files.py", line 9, in rename_files
os.rename(file_name, file_name.translate(None, "1234567890"))
TypeError: translate() takes exactly one argument (2 given)
正規表現を使用しないでこの問題を解決する方法。
: インポート 輸入再グロブ file_path_list = glob.glob(「D:\ *」) #Here当社が指定したディレクトリにすべてのファイルのリストを取得し、あなたが得るためにも指定することができます特定のタイプ.htmlまたは.xls #eg。 file = path_list内のFpathには、 : dir = os.path.dirname(Fpath) fnameのhtmlファイル名のみを置き換えるhtmlファイルを作成することができます。 = Fpath.strip(dir) 名前= os.path.splitext(fname) fn = re.sub( '[\ d]'、 ''、name [0]) os.rename(Fpath、dir + fn +名前[1]) –