Python,负数字符串浮点数

雨伞

这是一个非常简单的问题,但我不必要地使其变得复杂,并继续遇到障碍。

我正在尝试解析一个简单的文本文件,其中包含点云信息x,y,z。

看起来像这样:

vertices:
v -543.243 -494.262 1282
v -538.79 -494.262 1282
v -536.422 -496.19 1287
v -531.951 -496.19 1287
v -527.481 -496.19 1287
v -213.909 -223.999 581
v -212.255 -224.384 582
v -209.15 -223.228 579
v -207.855 -223.999 581
v -205.482 -223.613 580
v -203.468 -223.613 580
v -201.106 -223.228 579
v -199.439 -223.613 580
v -197.765 -223.999 581
v -195.41 -223.613 580
v -193.062 -223.228 579
v -190.721 -222.842 578
v -189.04 -223.228 579
v -187.998 -224.384 582
v -185.976 -224.384 582
v -183.955 -224.384 582
v -181.621 -223.999 581
v -179.293 -223.613 580
v -177.279 -223.613 580
v -175.264 -223.613 580
v -173.549 -223.999 581
v -171.531 -223.999 581
v -169.513 -223.999 581
v -167.495 -223.999 581
v -165.761 -224.384 582
v -163.74 -224.384 582
v -161.718 -224.384 582
v -159.697 -224.384 582
v -157.946 -224.77 583
v -155.921 -224.77 583
v -153.896 -224.77 583
v -151.871 -224.77 583
v -149.847 -224.77 583
v -147.568 -224.384 582

好吧 还不错

接下来,我在搅拌器中使用python将这些点转换为顶点:

看起来像这样:

    #Open the file
try:
    f=open(path, 'r')
except:
    print ("Path is not Valid")


#Create an array of 
verts = []
#verts=[float(e) for e in verts if e]
#values = []

for line in f:
    lines = f.readline() 
    #values = ([c for c in lines if c in '-1234567890.'])
    if line.startswith("v "): #Go through file line by line
        read = lines.strip(' v\n').split(',') #remove the v,split@, 
            #read = values.split(',')
        #loop over all stuff in read, remove non-numerics
        for d in read:
            d= d.strip('-').split(' ')
            print("d:", (d))
            for n in d:
                n = n.strip('-')
                verts = verts.append(float(n[0]))
                #verts = verts.append(float(n[2]))
                #verts = verts.append(float(n[3]))
                print("vertsloops", d[0])
            print("read1", read[0])
            print(read)
            print("oo1verts", verts)
             ##################
             #Extend the array# 
             #print ("Could not use the line reading: %s"%read)


# Create a new mesh, it is now empty
mesh = bpy.data.meshes.new("Cube")
# Create empty vertices field in the mesh
mesh.vertices.add(len(verts))
# Add vertices
mesh.vertices.foreach_set("co", verts)


#Add a new empty object named "Read the PointCloud Data"
obj = bpy.data.objects.new("Read the PointCloud Data", mesh)
# Link object to current scene
bpy.context.scene.objects.link(obj)
`

不知何故,我尝试了许多不同的分割字符串的组合,但仍然遇到错误。我知道这是一个简单的任务!任何建议,请!

我首先看到的错误是:

d: ['-536.422', '-496.19', '1287']
Traceback (most recent call last):
  File "/Users/.../importpoints.blend/importpoints", line 37, in <module>
ValueError: could not convert string to float: '-'
Error: Python script fail, look in the console for now...

然后像这样:

d: ['536.422', '-496.19', '1287']
vertsloops 536.422
Traceback (most recent call last):
  File "/Users/.../importpoints.blend/importpoints", line 37, in <module>
AttributeError: 'NoneType' object has no attribute 'append'
Error: Python script fail, look in the console for now...

一件事是,如何将float('-531')视为负数。就目前而言,它会打到“-”号,并认为它是非数字的,因此无法将其转换。但是它是负面的,那么我该如何指出呢?

谢谢。

迈克·米勒

缩短阅读时间:

verts = []
for line in f:
    if line.startswith('v '):
        verts.append([float(val) for val in line.split()[1:]])

这应该替换您的完整for line in f:循环。确保以后没有其他行以v文件开头。值后面可能有一个空行,因此您可以在该处停止读取。

现在verts看起来像这样:

[[-543.243, -494.262, 1282.0],
 [-538.79, -494.262, 1282.0],
 [-536.422, -496.19, 1287.0],
 [-531.951, -496.19, 1287.0],
 [-527.481, -496.19, 1287.0],
 [-213.909, -223.999, 581.0],
 [-212.255, -224.384, 582.0],
 [-209.15, -223.228, 579.0],
 [-207.855, -223.999, 581.0],
 [-205.482, -223.613, 580.0],
 [-203.468, -223.613, 580.0],
 [-201.106, -223.228, 579.0],
 [-199.439, -223.613, 580.0],
 [-197.765, -223.999, 581.0],
 [-195.41, -223.613, 580.0],
 [-193.062, -223.228, 579.0],
 [-190.721, -222.842, 578.0],
 [-189.04, -223.228, 579.0],
 [-187.998, -224.384, 582.0],
 [-185.976, -224.384, 582.0],
 [-183.955, -224.384, 582.0],
 [-181.621, -223.999, 581.0],
 [-179.293, -223.613, 580.0],
 [-177.279, -223.613, 580.0],
 [-175.264, -223.613, 580.0],
 [-173.549, -223.999, 581.0],
 [-171.531, -223.999, 581.0],
 [-169.513, -223.999, 581.0],
 [-167.495, -223.999, 581.0],
 [-165.761, -224.384, 582.0],
 [-163.74, -224.384, 582.0],
 [-161.718, -224.384, 582.0],
 [-159.697, -224.384, 582.0],
 [-157.946, -224.77, 583.0],
 [-155.921, -224.77, 583.0],
 [-153.896, -224.77, 583.0],
 [-151.871, -224.77, 583.0],
 [-149.847, -224.77, 583.0],
 [-147.568, -224.384, 582.0]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查字符串是否以负数和浮点数开头?[Python]

来自分类Dev

在 JavaScript 中使用 Regex 从字符串中获取数字数组,包括负数和浮点数

来自分类Dev

浮点数必须是字符串还是数字?

来自分类Dev

浮点数字符串格式中的Python精度

来自分类Dev

将用逗号分隔的字符串数字转换为整数或在python中浮点数

来自分类Dev

python-将字符串转换为数字(浮点数或整数)的问题

来自分类Dev

Python:将负字符串数字转换为浮点数时遇到的困难

来自分类Dev

如何从js中的字符串中提取每个整数或浮点数(正数或负数)

来自分类Dev

将十六进制字符串中的负数解码为浮点数?

来自分类Dev

Python将字符串转换为浮点数

来自分类Dev

在Python中将字符串转换为浮点数

来自分类Dev

解析浮点数的字符串

来自分类Dev

从字符串创建浮点数

来自分类Dev

解析浮点数的字符串

来自分类Dev

JavaScript,字符串拆分,数字(可以是浮点数)和字符串

来自分类Dev

Python将字符串转换为浮点数会显示错误,显示数字为字母和数字的混合

来自分类Dev

将31.1 M之类的字符串数字转换为数字/浮点数?

来自分类Dev

解析带有浮点数的json字符串作为python中的字符串

来自分类Dev

javascript regexp-用舍入数字替换字符串中的所有浮点数

来自分类Dev

如何将逗号作为字符串的数字转换为Javascript中的浮点数

来自分类Dev

不会将字符串格式的十进制数字转换为浮点数

来自分类Dev

将字符串转换为数字(根据输入的变量为浮点数或整数)

来自分类Dev

是否将31.1 M之类的字符串转换为数字/浮点数?

来自分类Dev

如何使用PHP将数字字符串转换为浮点数?

来自分类Dev

如何将数字的英语字符串转换为浮点数(例如,“ 26” => 26.0)

来自分类Dev

如何检查变量是日期、字符串还是浮点数(数字)[PHP]

来自分类Dev

如何将字符串转换为数字范围(浮点数)?

来自分类Dev

无法将字符串转换为浮点数 - 不是数字 (NaN)

来自分类Dev

将带有财务缩写的数字字符串转换为浮点数

Related 相关文章

  1. 1

    如何检查字符串是否以负数和浮点数开头?[Python]

  2. 2

    在 JavaScript 中使用 Regex 从字符串中获取数字数组,包括负数和浮点数

  3. 3

    浮点数必须是字符串还是数字?

  4. 4

    浮点数字符串格式中的Python精度

  5. 5

    将用逗号分隔的字符串数字转换为整数或在python中浮点数

  6. 6

    python-将字符串转换为数字(浮点数或整数)的问题

  7. 7

    Python:将负字符串数字转换为浮点数时遇到的困难

  8. 8

    如何从js中的字符串中提取每个整数或浮点数(正数或负数)

  9. 9

    将十六进制字符串中的负数解码为浮点数?

  10. 10

    Python将字符串转换为浮点数

  11. 11

    在Python中将字符串转换为浮点数

  12. 12

    解析浮点数的字符串

  13. 13

    从字符串创建浮点数

  14. 14

    解析浮点数的字符串

  15. 15

    JavaScript,字符串拆分,数字(可以是浮点数)和字符串

  16. 16

    Python将字符串转换为浮点数会显示错误,显示数字为字母和数字的混合

  17. 17

    将31.1 M之类的字符串数字转换为数字/浮点数?

  18. 18

    解析带有浮点数的json字符串作为python中的字符串

  19. 19

    javascript regexp-用舍入数字替换字符串中的所有浮点数

  20. 20

    如何将逗号作为字符串的数字转换为Javascript中的浮点数

  21. 21

    不会将字符串格式的十进制数字转换为浮点数

  22. 22

    将字符串转换为数字(根据输入的变量为浮点数或整数)

  23. 23

    是否将31.1 M之类的字符串转换为数字/浮点数?

  24. 24

    如何使用PHP将数字字符串转换为浮点数?

  25. 25

    如何将数字的英语字符串转换为浮点数(例如,“ 26” => 26.0)

  26. 26

    如何检查变量是日期、字符串还是浮点数(数字)[PHP]

  27. 27

    如何将字符串转换为数字范围(浮点数)?

  28. 28

    无法将字符串转换为浮点数 - 不是数字 (NaN)

  29. 29

    将带有财务缩写的数字字符串转换为浮点数

热门标签

归档