我在一个目录中有许多(未知数)数据文件。每个数据文件都有以下内容。
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
依此类推,直到所有文件中的数据都放在这个文件中。
该脚本需要执行以下操作。
- 首先找到该目录中有多少文件,以便它可以将其用作 for 循环的计数器(如果使用)
- 打开一个新文件,并将第 3、4、5 列中的数据从第 16 行添加到目录中文件 1 的末尾。
- 添加一个空行
- 移动到下一个文件(因为这些数据是时间相关的数据,需要按时间顺序累积数据。文件将在目录中排序。)
- 从第 16 行到结束的第二个文件中添加第 3、4、5 列
- 添加一个空行
- 重复直到目录中的最后一个文件。
如果有人向我展示如何使用 Python 做到这一点,我将不胜感激。