Index > Pythonで java.io.File().listFiles() に該当するコードは?
Thu, July 2, 2009

Pythonで java.io.File().listFiles() に該当するコードは?

GoogleAppEngineの開発をしている関係で、Pythonを書く機会が増えてきた。

いままでは、 Jythonを使っていて、Javaスタイルで書ける部分はそれで間に合わせていたが、 Pythonスタイルの方がずっと簡潔に書けることが判明。

今回は、 ./data ディレクトリ以下にあるファイルを列挙する方法のメモ。

Python の場合

for root, dirs, files in os.walk('./data') :
        for f in files :
                path=os.path.join(root, f)
                print path

Jython の場合

import java.io as io

for f in io.File('./data').listFiles():
    print f.getAbsolutePath()

先のpythonの場合は、再帰的により深いディレクトリまでたどって ファイルをリストアップするので、厳密には、このJythonコードと Pythonコードは同じではない。

Java の場合

public static void main(String[] args){
       java.io.File[] files=java.io.File("./data").listFiles();
       for(int i=0; i<files.length; i++){
           System.out.println(files[i].getAbsolutePath());
       }      
}
 Twitter
follow me on Twitter
 Categories