2016-12-05 4 views
1

内のファイルの名前を変更します。私は、そのフォルダ内のすべての私のファイルをスキャンし、特定のファイルの名前を変更しようとしているスキャンディレクトリと私はこのような私の<strong>ウェブ</strong>ディレクトリ内の7つのファイル持っているのPython

enter image description here

を。

私はそれは、

のpython scan_dir.py

実行した後

import os 

path = '/Users/username/Desktop/web' 
for filename in os.listdir(path): 
    if filename.startswith("test"): 
     print 'found' 
     os.rename(filename, filename.replace("test_", " ")) 
    else: 
     continue 

を持っている私は

found 
Traceback (most recent call last): 
    File "scan_dir.py", line 9, in <module> 
    os.rename(filename, filename.replace("test_", " ")) 
OSError: [Errno 2] No such file or directory 

私が間違って何をしたか上の任意のヒントを得ましたか。

+0

Rename Masterのような既存のツールではなく、Pythonでこれを行う理由はありますか? – TigerhawkT3

+0

新しいファイル名はスペースで始まります。 – TigerhawkT3

+0

さらに、 "python os.rename such file or directory"(Googleの提案によって大部分が自動完成された)の基本的なGoogle検索では、リンクされた複製を含むいくつかの有益な結果が得られました。新しい質問を投稿する前に、数秒間の調査をしてください。 – TigerhawkT3

答えて

2

ときあなたはrenameあなたが完全なパスを使用する必要がありますあなたが現在ディレクトリ、おそらくドンに(あなたの例から)ファイルtest_3.jpgの名前を変更しようと使用しないものをあなたの現在のコードで

import os 

path = '/Users/name/Desktop/web' 
for filename in os.listdir(path): 
    if filename.startswith("test"): 
     print 'found' 
     os.rename(os.path.join(path, filename), os.path.join(path, filename.replace("test_", " "))) 
    else: 
     continue 

を存在しません。

私は、代わりにglob functionを使用しています。

+1

'os.path.join'ではなく文字列の書式設定が必要な理由は何ですか? – TigerhawkT3

+0

具体的な理由はありません。この特定のケースでは、私は 'os.path.join'は必要ではないと思っていますが、両方を使うことができます。 – Dekel

+0

'os.path.join'に変更されました:) – Dekel