我有一个包含以下数据的文件:
<<row>>12|xyz|abc|2.34<</row>>
<<eof>>
文件可能有几行,像这样。我正在尝试设计一个解析器,它将解析此文件中存在的每一行,并返回一个包含所有行的数组。最好的方法是什么?该代码必须用python编写。代码不应使用不以<<row>>
开头的行,否则应引发错误。
========>更新<======== >>
我刚刚发现特定的<<row>>
可以跨越多行。因此,我的代码和下面提供的代码不再起作用。有人可以建议一个有效的解决方案吗?
数据文件可以包含数百到数千行。
我有一个包含以下数据的文件:<< [> 12 | xyz | abc | 2.34 > << [>文件可能有几行,像这样。我正在尝试设计一个解析器,它将......>
良好的做法是测试不需要的案例并忽略它们。一旦确定有一条符合要求的生产线,就可以对其进行处理。请注意,实际处理不在if语句中。没有将行分成几行,您只需要两个测试:
rows = list() with open('newfile.txt') as file: for line in file.readlines(): line = line.strip() if not line.startswith('<<row>>'): continue if not line[-8:] == '<</row>>': continue row = line[7:-8] rows.append(row)