Thursday, 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());
}
}
