5

時系列データの csv データ ファイルが数百 (おそらく 1 k 以上) 含まれるフォルダーがあります。理想的には、このデータは 1 つの csv にあるため、一度にすべてを分析できます。私が知りたいのは、Pythonを使用してすべてのファイルを互いに追加する方法があるということです.

私のファイルは、次のようなフォルダーの場所に存在します。

C:\Users\folder\Database Files\1st September
C:\Users\folder\Database Files\1st October
C:\Users\folder\Database Files\1st November
C:\Users\folder\Database Files\1st December
etc

各フォルダー内には 3 つの csv があります (これらのファイルはパイプで区切られた値を含む .txt ファイルとして実際に保存されるため、csv という用語を大まかに使用しています|)

これらのファイルが呼び出されたとしましょう:

MonthNamOne.txt
MonthNamTwo.txt
MonthNameOneTwoMurged.txt

OneTwoMurged.txtこのディレクトリ内のこれらすべてのフォルダーを調べて、すべてのファイルをマージするように何かをコーディングするにはどうすればよいでしょうか。

4

3 に答える 3

5

これは、ディレクトリを再帰的に処理し、処理のために特定のファイル パターンを照合し、処理されたファイルの結果を追加します。これによりcsvも解析されるため、個々の行の分析と処理も行うことができます。必要に応じて変更してください:)

#!python2
import os
import fnmatch
import csv
from datetime import datetime as dt

# Open result file
with open('output.txt','wb') as fout:
    wout = csv.writer(fout,delimiter='|')

    # Recursively process a directory
    for path,dirs,files in os.walk('files'):

        # Sort directories for processing.
        # In this case, sorting directories named "Month Year" chronologically.
        dirs.sort(key=lambda d: dt.strptime(d,'%B %Y'))
        interesting_files = fnmatch.filter(files,'*.txt')

        # Example for sorting filenames with a custom chronological sort "Month Year.txt"
        for filename in sorted(interesting_files,key=lambda f: dt.strptime(f,'%B %Y.txt')):

            # Generate the full path to the file.
            fullname = os.path.join(path,filename)
            print 'Processing',fullname

            # Open and process file
            with open(fullname,'rb') as fin:
                for line in csv.reader(fin,delimiter='|'):
                    wout.writerow(line)
于 2013-11-09T15:53:27.477 に答える