Python 通过解析后,我得到了损坏的文件

Python 通过解析后,我得到了损坏的文件,python,matlab,parsing,io,special-characters,Python,Matlab,Parsing,Io,Special Characters,我有很多来自分子动力学代码(Lammps)的输出文件,我有一个脚本,可以解析这些文件并从输出文件中计算出一系列参数。每个文件的大小在4-17MB之间,脚本在大约3分钟内解析768个文件。文件的格式是文本而不是二进制文件 问题是: 在处理其中4到5个文件夹(4~5*768)后,脚本停止,因为它们抱怨整形错误。但真正的原因是,文本中插入了一堆“特殊字符”,没有任何好的理由。我确信,在脚本解析之前,这个文件没有损坏,而将这些字符插入文本中的唯一原因实际上是运行脚本 脚本是用python编写的,我使用下

我有很多来自分子动力学代码(Lammps)的输出文件,我有一个脚本,可以解析这些文件并从输出文件中计算出一系列参数。每个文件的大小在4-17MB之间,脚本在大约3分钟内解析768个文件。文件的格式是文本而不是二进制文件

问题是:

在处理其中4到5个文件夹(4~5*768)后,脚本停止,因为它们抱怨整形错误。但真正的原因是,文本中插入了一堆“特殊字符”,没有任何好的理由。我确信,在脚本解析之前,这个文件没有损坏,而将这些字符插入文本中的唯一原因实际上是运行脚本

脚本是用python编写的,我使用下面的“r”键命令来确保脚本没有对文件的写访问权限

fid = open(file_path, 'r') 
我在Matlab中重新编写了相同的脚本,同样的问题也存在,这让我相信这是与我的硬件相关的I/O问题,而不是编码问题

我在ubuntu工作站上运行这个脚本,该工作站有ext4格式的硬盘和64GB的ram。 有趣的是,当我在集群上运行相同的脚本时,我无法复制这个问题。即使这个脚本的并行版本在集群上也运行得很好,没有问题,但在我的本地机器上却不行

下面是脚本的一部分,它对打开的文件执行所有读取操作,文件的其余部分执行计算。最后,我将结果写在一个单独的文件中,这个文件非常小(50KB)


下面是损坏文件的示例。请注意特殊字符:

99463 2 51.5597 211.814 41.7614k4.26088e-13 -3.35999 
99881 2 52.1696 212.526 39.0575 4.91923e-/ef3 -3.35998 

如果您有过类似的经历,请在此处留言。

您可以发布一部分损坏的文件和您正在使用的代码吗?如果我们不能准确地看到您正在做什么,那么很难调试。有什么特殊的字符?你说的是
e-13
?不是。我说的是我的文本解释器为表示特殊字符而添加的额外k和/ef。这些字符会改变文件的模式,并导致脚本中出现错误。之后,再次在文本编辑器中打开,文件是否已更改?您还可以确定
md5sum filename
before和after以查看文件校验和是否相同吗?请注意,此问题发生在脚本使用相同格式处理大约3000个文件之后。我无法预测这个问题何时发生。我将尝试在读取每个文件之前和之后获取md5sum的输出。
99463 2 51.5597 211.814 41.7614k4.26088e-13 -3.35999 
99881 2 52.1696 212.526 39.0575 4.91923e-/ef3 -3.35998