2011-01-04 6 views
0

こんにちは、pythonの別のフォルダにファイルのセットの名前を変更すると問題があります。私はPythonの別のフォルダにあるファイルのセットの名前を変更する

images/p_0/A-1.jpg,B-1.jpg 
images/p_1/A-2.jpg,B-2.jpg 
images/p_2/A-3.jpg,B-3.jpg 

を好きにこれらのJPGの名前を変更する必要があると私はos.renameメソッドを使用しています

images/p_0/aaa.jpg,bbb.jpg 
images/p_1/aaa.jpg,bbb.jpg 
images/p_2/aaa.jpg,bbb.jpg 

のようなフォルダ構造を持っています。私はちょうどどのようにフォルダを繰り返し、画像を見つけて名前を変更するのか分からない。

答えて

3

os.walkとos.renameを使用します。

import os 
for root, dirs, files in os.walk(top, topdown=False): 
    for name in files: 
     #Rename your files and use os.path.join(root, name) 
0

ネストされたディレクトリ構造がある場合は、os.listdirまたはos.walkをご覧ください。

#!/usr/bin/env python 

import os 

# list all files 
for filename in os.listdir('.'): 
    print filename # do something with filename ... 

def is_image(filename): 
    """ Tiny filter function. """ 
    return filename.endswith(".jpg") or filename.endswith(".png") 

# only consider files, which pass the `is_image` filter 
for filename in filter(is_image, os.listdir('.')): 
    print filename # do something with filename ... 
0

os.listdir()を使用すると、一部のディレクトリのすべてのファイルを取得できます。また、os moduleドキュメントの残りの部分を調べることもできます。

+0

はい私はそれを試してみました。イメージフォルダ内のディレクトリを一覧表示します。ディレクトリ内のファイルを見つけて名前を変更する必要があります – Rakesh

+0

2つのループがあります: 'os.listdir(" images ")内のdirname: os.listdir( "images /" + dirname "):do_something()' – Karmastan

+0

Karmastanでは、直接の文字列連結の代わりに 'os.path.join(" images "、dirname)'を使うべきです。 –

0

os.walk()に加えて、glob.glob()も便利です。

関連する問題