-1

ディレクトリに多数の (数は不明) データ ファイルがあります。各データファイルの内容は次のとおりです。

FILE TYPE:  1   
COLUMNS: 7  
TITLE: TRACK HISTORY    

COLUMN TYPE VARIABLE (UNITS)    
------ ---- -------- -------    
1 2 ParticleResidenceTime (s)   
2 10 ParticleID - 

3 10 ParticleXPosition (m)  
4 10 ParticleYPosition (m)  
5 10 ParticleZPosition (m)  
6 10 ParticleDiameter (m)

7 10 ParticleDensity (kg/m3)    

---------------------------------------------   

3.00E-01    1.01E+05    -5.32E-02   -1.19E-01 -4.21E-02 1.28E-04    1.50E+03
3.00E-01    1.36E+05    -5.73E-02   -1.30E-01   -2.69E-02   1.50E-04    1.50E+03
3.00E-01    1.53E+05    -5.53E-02   -8.33E-02   -8.47E-03   1.39E-04    1.50E+03

各データ ファイルには、上記のように約 30 万行あります。これらすべてのファイルを 1 つのファイルに統合する必要があります。それらには3つの列と1つのヘッダーしかありません。3 つの列には、粒子の xyz 位置データである列 3、4、5 が必要です。データは各ファイルの 16 行目から始まります。

したがって、最終的にマージされたファイルは次のようになります。

X            Y          Z  ( i guess i could add this header at the end manually too)
-5.32E-02 -1.19E-01 -4.21E-02
-5.12E-02 -1.39E-01 -4.21E-02
-5.32E-02 -1.19E-01 -4.21E-02
-5.32E-02 -1.19E-01 -4.21E-02

ファイル 1 のデータの後の空の行に続いて、ファイル 2 のデータが開始されます

-5.32E-02 -1.19E-01 -4.21E-02
-5.12E-02 -1.39E-01 -4.21E-02
-5.32E-02 -1.19E-01 -4.21E-02
-5.32E-02 -1.19E-01 -4.21E-02

ファイル 3 のデータの後の空の行に続いて、ファイル 4 のデータが開始されます

-5.32E-02 -1.19E-01 -4.21E-02
-5.12E-02 -1.39E-01 -4.21E-02
-5.32E-02 -1.19E-01 -4.21E-02
-5.32E-02 -1.19E-01 -4.21E-02

すべてのファイルからのデータがこの 1 つのファイルに入れられるまで続きます。

スクリプトは次のことを行う必要があります。

  1. 最初にそのディレクトリにあるファイルの数を見つけて、それをforループのカウンターとして使用できるようにします(使用されている場合)
  2. 新しいファイルを開き、ディレクトリのファイル 1 の 16 行目から 3、4、5 列目にデータを追加します。
  3. 空行を追加する
  4. 次のファイルに移動(これらのデータは時間依存のデータであり、時間順にデータを蓄積する必要があるため。ファイルはディレクトリにソートされます。)
  5. 2番目のファイルの16行目から最後まで列3、4、5を追加します
  6. 空行を追加する
  7. ディレクトリ内の最後のファイルまで繰り返します。

誰かが Python を使用してこれを行う方法を教えてくれたら幸いです。

4

1 に答える 1

0

コードは書きませんが、知っておくべきことを説明するリンクをいくつか示します。 Python からのファイルの読み取りと書き込み

ディレクトリ内のファイル数を数える

Pythonでファイルの作成日時を取得する

さらに、いくつかの文字列操作 - splitメソッドが役立つはずです。

これで始められることを願っています!

于 2013-06-07T20:24:03.183 に答える