我有一个程序从.txt
文件中获取数字并将其放入array
中。问题是这些数不是孤立的或有序的。.txt
文件如下所示:
G40 Z=10
A=30 X10 Y50
A=30 X40 Y15
A=50 X39 Y14
G40 Z=11
A=30 X10 Y50
A=30 X40 Y15
A=50 X39 Y14
输出应该是一个新的.txt
文件,其数组格式如下
这是到目前为止我所做的,尽管我不确定如何将输出写入新文件。。。在
inputfile = open('circletest1.gcode' , 'r')
def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
for i in range(203): inputfile.next() # skip first 203 lines
while True:
my_text = inputfile.readline()
z = find_between(my_text, "Z =", " ")
x = find_between(my_text, "X", " ")
y = find_between(my_text, "Y", " ")
print(x ," ", y, " ", z)
if not my_text:break
inputfile.close()
有一段时间我收到缩进错误,但我相信我已经解决了这个问题。现在我得到的错误消息是“值错误:混合迭代和读取方法将丢失数据”。在
我不知道从这里到哪里去,也不知道如何将我的结果导入另一个单独的新txt文件。在
另外,在我的代码中,有没有一种方法可以在循环之外保留z值,直到分配了一个新的z值?在
如果我理解正确,您需要将以}值组合起来(直到下一行
G
开头的行中的Z
值与以下行中的X
和{G
)。在如果是这样,我将使用一个循环,只在以
A
开头的行上打印,而只在以G
开头的行上保存新的Z
值。我将使用regex进行行解析,但是如果您愿意,可以使用简单的字符串操作(我将split
,然后跳过相关项的第一个或多个字母)。在相关问题 更多 >
编程相关推荐