2016-09-07 13 views
0

ありません、私はエラーを取得するいくつかの理由のために、ディレクトリ内のファイルの名前を変更しようとします。 問題は私が適切な形式でディレクトリを挿入していない可能性がありますか?ファイル名の変更:そのようなファイルやディレクトリは

追加情報: パイソン2 & Linuxマシン

OSError: [Errno 2] No such file or directory

それだけで罰金、ディレクトリの内容を印刷しますけど。私は間違って何をしていますか?

import os 

for i in os.listdir("/home/fanna/Videos/strange"): 
    #print str(i) 
    os.rename(i, i[:-17]) 
+0

可能な重複[:OSErrorの:Pythonの\ [errnoを2 \]いいえそのようなファイルまたはディレクトリ: ''](http://stackoverflow.com/questions/15725273/python-oserror-errno-2-no-such -file-or-directory) –

+1

あなたは正しいディレクトリにいますか?つまり、あなたのpython作業ディレクトリ/ home/fanna/Videos/strangeです。そうでない場合は、それをファイル名 –

答えて

4

os.rename()名前を変更するファイルへの完全なパスが必要です。 os.listdirは、ディレクトリ内のファイル名のみを返します。この

import os 
baseDir = "/home/fanna/Videos/strange/" 
for i in os.listdir(baseDir): 
    os.rename(baseDir + i, baseDir + i[:-17]) 
+0

と連結して、これが私の問題を解決しました!それもパスを含めていなかったことを認識していない! – Fanna1119

+0

それはうまくいってうれしいです。私は答えを編集して、os.listdirが返すものをより明確にするようにしました。そして、忘れてはならないのは、左にある緑色のチェックマークを使って、あなたにとって最適な答えを受け入れることができるということです。 – CDspace

2

はファイル/home/fanna/Videos/strange/name_of_some_video_file.aviがあるとしてみてください、あなたは/home/fannaからスクリプトを実行しています。

iは、name_of_some_video_file.avi(フルパスは含まず)です。あなたは

os.rename(i, i[:-17]) 

を実行したときにあなたが言っている

os.rename("name_of_some_video_file.avi", "name_of_some_video_file.avi"[:-17]) 

Pythonは、これらのファイルは/home/fanna/Videos/strangeから来たという考えを持っていません。それは、現代の作業ディレクトリに対してそれらを解決するので、それは/home/fanna/name_of_some_video_file.aviを探しています。

関連する問題