解析字符串模式(Python)

问题描述 投票:0回答:3

我有一个包含以下数据的文件:

<<row>>12|xyz|abc|2.34<</row>>
<<eof>>

文件可能有几行,像这样。我正在尝试设计一个解析器,它将解析此文件中存在的每一行,并返回一个包含所有行的数组。最好的方法是什么?该代码必须用python编写。代码不应使用不以<<row>>开头的行,否则应引发错误。

========>更新<======== >>

我刚刚发现特定的<<row>>可以跨越多行。因此,我的代码和下面提供的代码不再起作用。有人可以建议一个有效的解决方案吗?

数据文件可以包含数百到数千行。

我有一个包含以下数据的文件:<< [> 12 | xyz | abc | 2.34 > << [>文件可能有几行,像这样。我正在尝试设计一个解析器,它将......>

python string-parsing
3个回答
1
投票

1
投票
良好的做法是测试不需要的案例并忽略它们。一旦确定有一条符合要求的生产线,就可以对其进行处理。请注意,实际处理不在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)


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.