<p>如果我看这个文件,它看起来像一个特定的格式</p>
<p>一个数据块以<code>|</code>开头,以<code>;</code>结尾。在数据块中,数据用<code>,</code>分割。基本上它就像一个CSV,但换行符是<code>;</code></p>
<p>现在,在regex的帮助下,您可以像这样读取这些数据:</p>
<pre><code>import re
with open("resources/input.dat") as f:
lines = f.readlines()
text = "".join(lines)
regex = r"\|(.*?);"
matches = re.finditer(regex, text, re.MULTILINE | re.DOTALL)
data = []
for matchNum, match in enumerate(matches, start=1):
for group in match.groups():
data.append(group.split(","))
for d in data:
print(d)
</code></pre>
<h2>输入</h2>
<pre><code>|CF,2,1,1;|CK,1,3,1,1;
|NO,1,7,1,0,,0,;
|CT,1,41,0,6,Bench,24,Korrosionstest', '15A046-01,0,
otherline_data;
</code></pre>
<h2>输出</h2>
<pre><code>['CF', '2', '1', '1']
['CK', '1', '3', '1', '1']
['NO', '1', '7', '1', '0', '', '0', '']
['CT', '1', '41', '0', '6', 'Bench', '24', "Korrosionstest'", " '15A046-01", '0', '\notherline_data']
</code></pre>
<p>正如您所看到的,即使数据块没有在新行结束,您仍然可以获得数据,直到定义的结束标记<code>;</code></p>
<h2>编辑</h2>
<p>我下载了你的.dat文件。
正如您在第1133行之后看到的,有些奇怪的字符根本没有意义。这个字符或者更确切地说是字节可能是您在开始处理数据时需要的信息。
基本上,它看起来像是一些压缩数据,带有我在评论中告诉你的所需背景信息</p>
<p>FAMOS拥有解释该字节字符串的知识,因此可以按照预期向您提供数据。如何解读??询问数据来源,从何处获得数据或在FAMOS代码中找到数据</p>
<p>我想这里没有人能回答你这个问题。我不知道怎么做。这太具体了,因此最好去你得到数据的地方</p>
<p>.dat文件中的一个片段:(总共32404行,只有1133行包含数据)
<a href="https://i.stack.imgur.com/0ZM4B.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0ZM4B.jpg" alt="enter image description here"/></a></p>