python - 从非常规文本文件中提取信息? (Python)

标签 python arrays io

我正在尝试从协作者发送给我的一组文件中提取一些信息。每个文件都包含一些 python 代码,这些代码命名了一系列列表。它们看起来像这样:

#PHASE = 0
x = np.array(1,2,...)
y = np.array(3,4,...)
z = np.array(5,6,...)

#PHASE = 30
x = np.array(1,4,...)
y = np.array(2,5,...)
z = np.array(3,6,...)

#PHASE = 40
...

等等。总共有 12 个文件,每个文件有 7 个阶段集。我的目标是将每个阶段转换成它自己的文件,然后可以由 ascii.read() 作为 Table 对象读取该文件,以便在不同的代码部分中进行操作。

我当前的方法无论是在资源还是组装所需的时间/精力方面都效率极低。它是这样的:从一个函数开始

def makeTable(a,b,c):
   output = Table()
   output['x'] = a
   output['y'] = b
   output['z'] = c
   return output

然后,对于每个阶段,我都手动将文本文件的相关部分复制粘贴到单元格中,并附加一行代码

fileName_phase = makeTable(a,b,c)

重复令人作呕。处理所有数据需要 84 次迭代,自然每次都需要一些小的调整来匹配特定的文件名和阶段。

最后,在代码末尾,我将几行代码设置为 ascii。将每个表写入 .dat 文件以供以后操作。

整个方法的设置非常费力。如果这是处理数据的唯一方法,我会这样做。不过,我希望我能找到一种更快的方法来设置它。有没有可以推荐的?

最佳答案

如果效率和代码重用而不是复制是目标,我认为类可能提供一个好方法。我现在要 sleep 了,稍后再编辑。这是我的想法:创建一个名为 FileWithArrays 的类,并使用解析器读取这些行并将它们放入您将使用该类创建的对象 FileWithArrays 中。完成后,您可以创建一个方法来转换表中的对象。

附注对于解析器来说,一个好主意是将所有行存储在列表中并逐一解析它们,使用 list.pop() 自动缩小列表。希望它有帮助,如果这没有多大帮助,明天我会进一步研究它。如果我误解了任何内容,请尝试重写/重新格式化问题,这不是很容易阅读。

关于python - 从非常规文本文件中提取信息? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686037/

相关文章:

java - Java 编写客户端到服务器

python - `pip list` 和 anaconda 包列表中的 Keras 但无法导入

c - 如果 x 的类型为 char * 而不是 char[N],printf ("%s\n", x) 如何工作?

java - 在java中创建一个二进制文件

python - NumPy:来自数组和标量列表的二维数组

c - 想了解 C 数组行为

java - 寻找 Javacpp FFMPEG CustomIO 示例

python - 循环遍历一个列表以查看是否有任何用户名对应于其他列表 Python

python - 如何在 Python 中装饰控制台记录器消息?

python - 如何在 Python 中从 z、p、k 中找到增益 g