使用Python的文件操作

时间:2013-06-07 20:15:30

标签: python

我在目录中有一个数字(编号未知)的数据文件。每个数据文件都包含以下内容。

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,它们是粒子x y z位置数据。数据从每个文件的第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行到结束
  6. 的第二个文件中添加第3,4,5列
  7. 添加一个空行
  8. 重复直到目录中的最后一个文件。
  9. 如果有人告诉我如何使用Python做这件事,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不会为您编写代码,但这里有一些链接可以解释您需要知道的内容。 Reading and writing files from Python

Count the number files in a directory

Get the file creation times and dates in python

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

希望这能让你开始!