python - 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() 的问题,但如果我手动创建一个文本文件并输入相同的数字,它会完美运行。
我不明白为什么会这样。
解决方案
您称为 a 的数组monstrosity
实际上是您正在寻找的数字,即11.1876
- 但每个数字和浮点数的开头都有NULL
其ASCII。\x00
它可能与文件中指针的实际位置以及您的代码认为的位置有关。
如果没有代码,我无能为力,但您可以检查一下: Python's read and write add \x00 to the file
推荐阅读
- post - 我无法使用以下 POST 代码获取我的 API 令牌
- kotlin - F# 相当于 Kotlin 的 ?。操作员
- sql - 如何编写查询以获取给定日期范围之间的特定日期记录?
- javascript - 按参数值对对象进行排序
- python - 烧瓶 send_file 没有打开文件
- soap - 数字签名的 xml 在编码后是否保留其签名?
- react-native - 即使在用户注销并关闭应用程序后如何在应用程序中存储数据。在本机反应
- react-native - 如何使用功能组件在 React Native 中验证电子邮件和密码?
- java - 启动 EMF 比较比较时违反加载程序约束(以及用于模型比较的适当工具。)
- python - json.dump 在 json.load(f) 时导致 json.decoder.JSONDecodeError