我有一个非常复杂的解析问题。任何想法都会在这里受到赞赏。我有一个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
答案 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并将每个值的内容写入单独的文件。