2017-02-06 3 views
0
import os 
from string import digits 


def rename_files(): 
    #1 - get the file names from the folder 
    f=os.listdir("/home/happy/Desktop/testfile") 
    print(f) 
    #2 - remove numbers from each file name 
    x = 0 
    while (x<len(f)): 
     b = print(os.rename(f[x], f[x].translate(str.maketrans('','',digits)))) 
     print(b) 
     x=x+1 

rename_files() 

os.listdir」関数は、以下のリストを返します::私はそれをプリントアウトするとき

['64seattle.jpg', '2chennai.jpg', '55kiev.jpg', '45ithaca.jpg', '54dallas.jpg', '68pune.jpg', '16los angeles.jpg', '46colombo.jpg', '96karachi.jpg', '36sydney.jpg', '47sao paulo.jpg', '93manchester.jpg', '83gainesville.jpg', '35miami.jpg', '29buenos aires.jpg', '72bucharest.jpg', '66san jose.jpg', '69shanghai.jpg', '73delhi.jpg', '47london.jpg', '52new york.jpg', '45austin.jpg', '2hyderabad.jpg', '47singapore.jpg', '61edinbrugh.jpg', '4istanbul.jpg', '29bristol.jpg', '.DS_Store', '17cairo.jpg', '69chicago.jpg', '41seoul.jpg', '88jacksonville.jpg', '22rochester.jpg', '90beijing.jpg', '28houston.jpg', '89berkeley.jpg', '25madrid.jpg', '97oakland.jpg', '9barcelona.jpg', '72bangalore.jpg', '50san diego.jpg', '5bogota.jpg', '74tel aviv.jpg', '48sunnyvale.jpg', '37athens.jpg'] 

私はいくつかの方法を試しましたが、私は騒ぎでこれに新しいので、これを考え出すのは本当に苦労しています。私は数字を削除しようとしているループにそれを渡そうとします。私はPython 3.5 btwを使用しています。

「FileNotFoundError:[Errno 2] No such file or directory」に「リストオブジェクトに属性がありません」というエラーは区別されていますが、この問題を解決するために近づいているようです。

何が間違っていますか?

答えて

1

renameは完全なファイルパスでのみ動作し、そうでない場合はファイルが見つかりません。両方の引数でを使用して、完全な有効なパスをrenameに渡します。

my_dir = "/home/happy/Desktop/testfile" 
for f in os.listdir(my_dir):  
    os.rename(os.path.join(my_dir,f), os.path.join(my_dir,f.translate(str.maketrans('','',digits)))) 
+0

これは機能しました。ありがとう!! – KOOLz

関連する問題