【问题标题】:File Operations using Python使用 Python 进行文件操作
【发布时间】:2013-06-04 05:50:00
【问题描述】:

我在一个目录中有许多(未知数)数据文件。每个数据文件都有以下内容。

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 行到末尾添加第 3、4、5 列
  6. 添加一个空行
  7. 重复直到目录中的最后一个文件。

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

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(控制台输出、堆栈跟踪、编译器错误 - 不管是什么适用的)。您提供的详细信息越多,您可能收到的答案就越多。

标签: python


【解决方案1】:

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

Count the number files in a directory

Get the file creation times and dates in python

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

希望这能让你开始!

【讨论】:

  • 谢谢。这就是我一直在寻找的。让我开始的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 2018-07-31
  • 2021-12-08
  • 2020-11-08
  • 2019-08-28
相关资源
最近更新 更多