复杂的解析查询

时间:2012-02-03 07:04:30

标签: python parsing

我有一个非常复杂的解析问题。任何想法都会在这里受到赞赏。我有一个test.dat文件。要解析的文件如下所示:

*   Number                  =              40

Time =  0
  1   10.13   10   10.11   12   13
  .
  .

Time =  n
  1   10   10   10   12.50   13
  .
  .

有N个时间块,每个块有40行,如上所示。我想做的是添加例如第一个块的第一行,然后是块#2中的第一行......依此类推到一个新文件-test_1.dat。类似地,每个块的第二行到test_2.dat等等。块中的行应该写入新的_n.dat文件。有没有办法做到这一点?我在这里假设的数字是40,所以如果* number = 40,每个时间块下将有40行。

的问候, RIS

1 个答案:

答案 0 :(得分:0)

您可以将文件作为字符串列表(称为fileList)读取,其中每个字符串是不同的行:

f = open('filename')
fileList = f.readlines()

然后,使用

删除文件的“标题”部分
fileList.pop(0)
fileList.pop(0)

然后,做

outFileContents = {} # This will be a dict, where number -> content of test_number.dat
for outFileName in range(1,41): #outFileName will be the number going after the _ in your filename
    outFileContents[outFileName] = []
    for n in range(40): # Counting through the time blocks
        currentRowIndex = (42 * n) + outFileName # 42 to account for the Time = and blank row
        outFileContents[outFileName].append(fileList[currentRowIndex])

最后,您可以遍历outFileContents并将每个值的内容写入单独的文件。