2012-05-13 2 views
0

dbf形式のファイルを含む3つのフォルダ(folder1、folder2、およびfolder3など)があります。私が持っているとします:Pythonでのファイルの収集

0345.dbf, 2345.dbf, 4444.dbf, 6767.dbf, 7623.dbf in folder1 
0222.dbf, 0345.dbf in folder2 
3423.dbf, 4827.dbf, 5635.dbf, 7623.dbf in folder3 

したがって、たとえば、 "0345.dbf"は、folder1とfolder2が表示されます。同様に、folder1とfolder3には2つの "7623.dbf"があります。しかし、それらはすべて異なる内容の異なるファイルです。次のように

Iは、2つの列のCSVファイルに格納された付加情報(list.csv)を有する:

0222 f2 
0345 f2 
2345 f1 
3423 f3 
4444 f1 
4827 f3 
5635 f3 
6767 f1 
7623 f3 

そのルールによれば、私は、フォルダ2から「0345.dbf」を選択しなければなりませんfolder1からではありません。 "7623.dbf"はfolder3からではなく、folder1から。

csvファイルに書かれている選択ルールに従って、9つのファイルをすべて収集してフォルダ(「d:/ collect」など)に保存するにはどうすればよいですか?ありがとう。

答えて

1

CSVファイルをdictに読み込み、column1からcolumn2にマッピングします。入力フォルダを読むときには、各ファイルの拡張子を付けずにベース名を追加します(os.listdirなど)。拡張子はrsplitまたはrpartitionで切り捨てます。 dictのルックアップが現在のディレクトリ名と一致する場合は、これを取る。そうでなければ、そうではない。