在 Python 中仅打印整行的一部分
Print only a part of a whole line in Python
到目前为止我的代码如下所示:
g = open("spheretop1.stl", "r")
m = open("morelinestop1.gcode", "w")
searchlines = g.readlines()
file = ""
for i, line in enumerate(searchlines):
if "outer loop" in line:
p4 = searchlines[i+1]
p5 = searchlines[i+2]
p6 = searchlines[i+3]
文件 spheretop1.stl 如下所示:
solid spheretop1
facet normal -4.647520e-002 -9.989174e-001 -2.029244e-003
outer loop
vertex 1.930371e+002 1.218346e-001 1.995131e+002
vertex 1.930244e+002 1.218346e-001 1.997564e+002
vertex 1.860572e+002 4.871899e-001 1.995131e+002
endloop
endfacet
facet normal 4.650354e-002 -9.989174e-001 -1.217645e-003
outer loop
vertex 2.069799e+002 1.218346e-001 2.000000e+002
vertex 2.069756e+002 1.218346e-001 1.997564e+002
vertex 2.139428e+002 4.871899e-001 1.995131e+002
endloop
endfacet
facet normal -2.323405e-002 -9.997293e-001 -1.217645e-003
outer loop
vertex 1.930244e+002 1.218346e-001 1.997564e+002
vertex 1.930371e+002 1.218346e-001 1.995131e+002
vertex 2.000000e+002 0.000000e+000 2.000000e+002
endloop
endfacet
我想要做的是 'p4' 是一组数字(浮点数),从顶点行中的第一个数字开始,然后是顶点行中的第二个数字。所以我希望 p4 看起来像这样:
p4 = (193.0371, 0.1218346).
之后我想要一个 p5 和一个 p6,p5 是 (193.0244, 0.1218346)
,p6 是 (186.0572, 0.4871899)
。现在它给我的是 "outer loop" 下的整行,我只想要该行的特定部分。有人知道怎么做吗?谢谢。
list1= p4.split() # gives list1= ['vertex','x','y','z']
p4=[float(list[1]),float(list[2])] # gives you a list of x and y
就这么简单:
p4 = map(float, searchlines[i+1].split()[1:3])
到目前为止我的代码如下所示:
g = open("spheretop1.stl", "r")
m = open("morelinestop1.gcode", "w")
searchlines = g.readlines()
file = ""
for i, line in enumerate(searchlines):
if "outer loop" in line:
p4 = searchlines[i+1]
p5 = searchlines[i+2]
p6 = searchlines[i+3]
文件 spheretop1.stl 如下所示:
solid spheretop1
facet normal -4.647520e-002 -9.989174e-001 -2.029244e-003
outer loop
vertex 1.930371e+002 1.218346e-001 1.995131e+002
vertex 1.930244e+002 1.218346e-001 1.997564e+002
vertex 1.860572e+002 4.871899e-001 1.995131e+002
endloop
endfacet
facet normal 4.650354e-002 -9.989174e-001 -1.217645e-003
outer loop
vertex 2.069799e+002 1.218346e-001 2.000000e+002
vertex 2.069756e+002 1.218346e-001 1.997564e+002
vertex 2.139428e+002 4.871899e-001 1.995131e+002
endloop
endfacet
facet normal -2.323405e-002 -9.997293e-001 -1.217645e-003
outer loop
vertex 1.930244e+002 1.218346e-001 1.997564e+002
vertex 1.930371e+002 1.218346e-001 1.995131e+002
vertex 2.000000e+002 0.000000e+000 2.000000e+002
endloop
endfacet
我想要做的是 'p4' 是一组数字(浮点数),从顶点行中的第一个数字开始,然后是顶点行中的第二个数字。所以我希望 p4 看起来像这样:
p4 = (193.0371, 0.1218346).
之后我想要一个 p5 和一个 p6,p5 是 (193.0244, 0.1218346)
,p6 是 (186.0572, 0.4871899)
。现在它给我的是 "outer loop" 下的整行,我只想要该行的特定部分。有人知道怎么做吗?谢谢。
list1= p4.split() # gives list1= ['vertex','x','y','z']
p4=[float(list[1]),float(list[2])] # gives you a list of x and y
就这么简单:
p4 = map(float, searchlines[i+1].split()[1:3])