我正在编写一个脚本,该脚本记录来自另一个程序的错误,并在遇到错误时从中断的地方重新启动该程序。不管出于什么原因,该程序的开发人员都没有必要默认将此功能放入其程序中。
无论如何,程序都会获取一个输入文件,对其进行解析,然后创建一个输出文件。输入文件采用特定格式:
UI - 26474845
TI - the title (can be any number of lines)
AB - the abstract (can also be any number of lines)
当程序引发错误时,它会为您提供跟踪错误所需的参考信息-
即UI,哪个部分(标题或摘要)以及相对于标题或摘要开头的行号。我想使用输入参考编号和文件,找到句子并将其记录的函数记录输入文件中令人讨厌的句子。我能想到的最好方法是在文件中向前移动特定的次数(即n次,其中n是相对于开始部分的行号)。这样做似乎很有意义:
i = 1
while i <= lineNumber:
print original.readline()
i += 1
我不知道这怎么会使我丢失数据,但是Python认为会这样,并说ValueError: Mixing iteration and read methods would lose data
。有人知道如何正确执行此操作吗?
你得到了ValueError异常,因为你的代码可能有for line in original:
除了original.readline()
。一个正在解决问题而又不降低程序速度或消耗更多内存的简单解决方案正在发生变化
for line in original:
...
至
while True:
line = original.readline()
if not line: break
...
问题内容: 看来,一个紧跟在上打开的文件(或)在Windows的权限不更新文件。 假设当前目录中有一个文件,其内容如下: 我执行以下代码: 我希望代码可以打印并将文件内容更新为: 至少在Linux上这可以正常工作。但是,当我在Windows上运行它时,该消息会正确显示,但文件没有更改- 就像被忽略了一样。如果我在文件句柄上调用它,则表明位置已更新(在和之前和之后),但文件没有更改。 但是,如果我在
问题内容: 我有一个主要为UTF-8的文件,但是也发现了一些Windows-1252字符。 我创建了一个表,以将Windows-1252(cp1252)字符映射到对应的Unicode对应表,并希望使用它来修复编码错误的字符,例如 但是尝试以这种方式进行替换会导致引发UnicodeDecodeError,例如: 有关如何处理此问题的任何想法? 问题答案: 如您所知,如果您尝试将此字符串解码为utf-
我试图通过Laravel5.4中的Mix(以前是Elixer)(使用https://Laravel.com/docs/5.4/Mix)设置一个SASS到CSS编译器。一切工作正常,它可以编译,我可以通过npm设置一个观察器,但是可以通过views/layout/app.blade.php文件引用它,比如: 不管用。在我的浏览器中,它当然显示为: 这是一条错误的道路。它应该引用http://loca
问题内容: 是否有人将Hamcrest与TestNG集成在一起,以便其匹配器可以轻松地用于TestNG断言中? 问题答案: 简而言之,要回答您的问题:您不需要将TestNG与Hamcrest集成。只需直接调用哪个抛出。 背景 我通过Google找到了您的问题,想知道完全一样的问题。在进一步谷歌搜索之后,我没有找到满意的答案,因此我阅读了JUnit与Hamcrest集成的源代码。 对于JUnit,通
问题内容: 我一直在用Python开发一个库,我想做一些性能改进。 是否可以在Python中编写一些代码并在Go中编写一些代码,并在它们之间传递数据?如果可能的话,是否有任何有关此操作的示例? 像这样: 问题答案: 你需要一个 胶 之间,例如编程语言或通信通过网络。如果您将https://docs.python.org/2/extending/extending.html与http://golan
问题内容: 尝试仅在文件包含数字和单词的地方读取双数字。到目前为止,我已经完成的代码可以从文件中正确读取并打印带有数字和单词的完整列表。不知道如何排除单词并打印只读的双精度数字。 问题答案: 这是一个工作测试 请注意,我使用了美国语言环境,以使扫描仪插入“。”作为小数点分隔符,在我的语言环境(默认)中为“,”。另请注意,nextDouble可以识别1.1和3(整数)