2017-05-11 9 views
0

を使用してこれはosモジュールが正しく ファイルを一覧表示されPythonのファイルはリネームosモジュール

[email protected] ~ $ python plsdelete.py 
01 - Taylor Swift - Welcome To New York.mp3 
Traceback (most recent call last): 
    File "plsdelete.py", line 5, in <module> 
    os.rename(i,i[20:]) 
OSError: [Errno 2] No such file or directory 

次のように

import os 
x = os.listdir("/media/virus/Data/Songs/Taylor swift/Taylor Swift - 1989 (Deluxe Version)") 
for i in x: 
    print i 
    os.rename(i,i[20:]) 

エラーが示されたスクリプトです。しかし、私がしようとすると問題が発生しますrename また、/ usr/lib/python 2.7をチェックしました。

+0

を追加することにより、作業ディレクトリを変更しましたsudo権限なしでこのファイルを削除したり名前を変更したりできますか? – martijnn2008

答えて

1

listdirは、指定されたフォルダ内のファイル名を返しますmplete paths。 os.renameは、あなたがその特定のフォルダの中のファイルを見ているとは思っていません。文脈のないファイル名を与えるだけです。

os.path.joinを使用してこれらのファイル名へのパスを作成し、フォルダパスをファイル名に結合することができます。

folder = "/media/virus/Data/Songs/Taylor swift/Taylor Swift - 1989 (Deluxe Version)" 
filenames = os.listdir(folder) 
for filename in filenames: 
    oldpath = os.path.join(folder, filename) 
    newpath = os.path.join(folder, filename[20:]) 
    os.rename(oldpath, newpath) 
0

あなたはrenameに渡されたファイル名にパスを追加する必要があります。

import os 
my_dir = "/media/virus/Data/Songs/Taylor swift/Taylor Swift - 1989 (Deluxe Version)" 
x = os.listdir(my_dir) 
for i in x: 
    print i 
    os.rename(os.path.join(my_dir, i), os.path.join(my_dir, i[20:])) 
0

私はそれを得た

は、私はちょうど

os.chdir("/media/virus/Data/Songs/Taylor swift/Taylor Swift - 1989 (Deluxe Version)")

関連する問題