我如何找出Python file read()方法在文件中失败的位置?(ValueError:以10为基数的int()的文本无效:)

我如何找出Python file read()方法在文件中失败的位置?(ValueError:以10为基数的int()的文本无效:),python,python-3.x,runtime-error,Python,Python 3.x,Runtime Error,我正在使用一个旧的Python代码来处理数据文件。这些文件是长时间计算的结果。有时需要重新启动计算,这可能会弄乱文件格式。然后Python后处理代码失败 我被卡住了,因为Python的后处理代码对几个文件都失败了,我无法找出每个文件中哪里有问题。这些文件太大了,不可能用手检查每一行 下面是我看到的错误类型的一个示例: Traceback (most recent call last): File "/mtn/storage/software/languages/an

我正在使用一个旧的Python代码来处理数据文件。这些文件是长时间计算的结果。有时需要重新启动计算,这可能会弄乱文件格式。然后Python后处理代码失败

我被卡住了,因为Python的后处理代码对几个文件都失败了,我无法找出每个文件中哪里有问题。这些文件太大了,不可能用手检查每一行

下面是我看到的错误类型的一个示例:

    Traceback (most recent call last):
      File "/mtn/storage/software/languages/anaconda/Anaconda3-2018.12/lib/python3.7/site-packages/asere/io/extxyz.py", line 593, in read_xyz
        nentities = int(line)
    ValueError: invalid literal for int() with base 10: '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "postprocess.py", line 24, in <module>
    path = read('%s%s' % (filename, fileext) , format='xyz', index=':')
我想知道的是如何打印发生故障的文件行。我猜如果我可以打印“索引”,那么就可以告诉我行/时间步数


我尝试在“path”命令之后执行“print(“index”)”,但失败发生在“path”命令期间和“print”之前。“有人知道如何处理这个问题吗?

对于您使用的库中的调试问题,确实没有一个好的一刀切的解决方案。作为第一种近似方法,可以在有问题的调用周围添加
try
/
处理程序,其中至少可以打印错误发生时它正在处理的文件。最后,您可能必须重构有问题的库,直到它暴露出调试库中问题所需的信息。@tripleee,谢谢。我确实尝试了你的建议--添加了一个try/except。但它并没有产生任何输出。我知道(根据以前比较容易发现问题的经验),在某个特定的时间步中会出现格式问题,其中只打印了部分时间步。我只是不知道问题的时间步长在文件中的什么位置。如果有人有灵感,我很想听!谢谢
path = read('%s%s' % (filename, fileext) , format='xyz', index=':').