-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

每个数据文件有大约 300k 行,如上所示。我需要将所有这些文件合并到一个文件中。其中只有 3 列和 1 个标题。3 列我需要第 3、4、5 列,它们是粒子 xyz 位置数据。数据从每个文件的第 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. 首先找到该目录中有多少文件,以便它可以将其用作 for 循环的计数器(如果使用)
  2. 打开一个新文件,并将第 3、4、5 列中的数据从第 16 行添加到目录中文件 1 的末尾。
  3. 添加一个空行
  4. 移动到下一个文件(因为这些数据是时间相关的数据,需要按时间顺序累积数据。文件将在目录中排序。)
  5. 从第 16 行到结束的第二个文件中添加第 3、4、5 列
  6. 添加一个空行
  7. 重复直到目录中的最后一个文件。

如果有人向我展示如何使用 Python 做到这一点,我将不胜感激。

4

1 回答 1

0

我不会为您编写代码,但这里有一些链接可以解释您需要了解的内容。 从 Python 读取和写入文件

计算目录中的文件数

在python中获取文件创建时间和日期

此外,一些字符串操作——split方法应该会派上用场。

希望这能让你开始!

于 2013-06-07T20:24:03.183 回答