【发布时间】:2019-10-08 23:51:26
【问题描述】:
我的代码类似于:
with open('folder/file.txt', 'w') as file:
file.write(json.dumps(someJsonData))
在我的程序中,每个实例都有一个用户。此特定代码位于一个循环内,该循环编辑多个其他用户的数据文件,并且始终是当前用户的代码。该代码在其他用户上运行良好,但当前用户的文件永远不会更改,即使我可以验证它确实运行并且它没有给出错误消息。考虑到我之前在程序中打开和关闭过这个文件,我可能忘记关闭它,但是我找不到我没有关闭的地方(我没有使用with整个时间打开文件) .
在此之前,我遇到过用不同语言编写的类似问题并且能够打印隐藏的错误消息。
有没有办法打印这段代码的每个输出?例如,它可能会说“成功写入文件”或“警告:无法打开文件”。你能做一些 try-catch 的事情来总是得到一个可打印的输出吗?
【问题讨论】:
-
你能解释一下你所说的是什么意思吗?它不会更新文件,即使它正在写入文件”?
-
@Selcuk 这将打开一个用户数据文件。该程序的设置方式是,每个实例都以用户身份运行。此代码在一个循环中,它编辑多个其他用户的数据文件,并且始终是当前用户。更新其他用户的文件没有问题,但永远不会更新当前用户的文件,即使我让它打印它之前要写入的内容并且之后不会出错。我希望有一种方法可以查看是否存在“隐藏错误”,即使错误可能在其他地方。
-
存在文件不存在、权限无效、I/O 问题等错误。Python 很擅长不做“隐藏”的事情。错误是您有 99.999999% 的确定性。您正在查看错误的路径、有空数据或类似情况。我们不能帮助诊断不合理的假设。我们需要一个可重现的例子。
-
请提出一个实际反映您遇到的确切问题以及您如何知道存在问题的问题,而不是您认为需要如何解决的问题。尝试制作一个简短但完整的示例,让其他人可以在他们的计算机上运行,按照您的说明逐步执行,并观察您想到的问题。
-
@KarlKnechtel,谢谢,我会记住这一点。在尼克的回答的帮助下,我能够间接解决我的问题。我试图删除这个问题,因为你提到的原因它不是一个很好的问题,但是 StackOverflow 希望我保留它,因为已经发布了一个答案。
标签: python python-3.x