首页 > 解决方案 > Python/CMD - 使用非常特定的文本文件作为输入时出现奇怪的特定错误

问题描述

我在 CS 课上,我正在做作业。我已经完成了所有工作,但我陷入了一个对我来说毫无意义的巨大错误。

在 CMD 中运行程序第一部分的命令如下:

python3 bead_tracker.py 25 180.0 25.0 数据/run_1/*

(* 用于省略一系列文件名,因为我不想打出来)

该命令输出一堆浮点数,最多保留 4 个小数位。到目前为止,事情仍然很好。

python3 bead_tracker.py 25 180.0 25.0 数据/run_1/* > output.txt

用于将命令的输出存储到 output.txt 中。打开文件一切看起来都很好。它只是一系列数字。

我们的课程使用https://introcs.cs.princeton.edu/python/code/stdio.py.html作为输入和输出的库。该函数stdio.readString()只是从标准输入中读取第一个字符串。

在这种情况下,函数应该从 output.txt 返回第一个字符串,应该是“11.1876”。

相反,它返回这个怪物:['ÿþ1\x001\x00.\x001\x008\x007\x006\x00']。

我认为这将是函数 stdio.readString() 的问题,但如果我手动创建一个文本文件并输入相同的数字,它会完美运行。

我不明白为什么会这样。

标签: pythoncmdtxt

解决方案


您称为 a 的数组monstrosity实际上是您正在寻找的数字,即11.1876- 但每个数字和浮点数的开头都有NULL其ASCII。\x00它可能与文件中指针的实际位置以及您的代码认为的位置有关。

如果没有代码,我无能为力,但您可以检查一下: Python's read and write add \x00 to the file


推荐阅读