为什么 Python 从我的列表中删除最后一位数字?

问题描述 投票:0回答:0

我正在努力编写一个 python 软件,将 Fusion 360 的“xyz”后处理器正确转换为我的老式机器人可以理解的格式。

目前一共有三个脚本:

  1. binbash.py(执行以下两个脚本的简单命令脚本)。

  2. convert.py(将分号更改为逗号)打开一个名为 x.csv 的文件并重命名为“one”

  3. go.py(添加额外的组件 - 例如:x,y,z 变成:

moves trans (x,y,z,0,180,180) 这现在将被机器人理解为移动到列出的 x,y,z 位置的命令。

这在 99.9% 的情况下都有效,但无论出于何种原因,我的第二个脚本经常从我的十进制数中删除数字。

例如:

236.727,207.489,35

运行我的脚本后,它返回的行为:

236.727,207.489,3

为什么在应该是 35 的地方少了 5?

这是个大问题,因为我的数控路由器的 Z 轴会向下倾斜超过一英寸,破坏工作。

我也把它变成 41.08 到 41。没什么大不了的,但仍然没有创建准确的刀具路径。

我不是软件工程师,只是想让一个工具工作。如果这里有人认为这很容易解决,请告诉我,也许我可以朝着正确的方向前进?

  1. 转换.py
import csv

reader = csv.reader(open("x.csv", "rU"), delimiter=';')
writer = csv.writer(open("one.csv", 'w', newline=''), delimiter=',')

writer.writerows(reader)
  1. Go.py
file = open("one.csv", "r")

text = file.readlines()
file.close()
text2 = []
for x in text:
    if x[-1] == '\n':
        text2.append('moves trans (' + x[:-2] + ',0,180,180)')

for x in text2:
    print(x)

file = open("one.csv", "w")
for x in text2:
    file.write(x + '\n')

file.close()

我真的不知道接下来要尝试什么。我不清楚为什么 python 会更改我列表中的一些数字而不是其他数字。我知道必须有无数种不同的方式来使用这个软件来表示数字,但我不确定如何让它保持原样。

我应该补充一点,我们正在谈论一长串数字。有时有几十万行。

python numbers rounding
© www.soinside.com 2019 - 2024. All rights reserved.