У меня есть файл , содержащий (~ 1000) строк данных в следующей упрощенной форме:
movej(p[-0.2875, -0.4, 0.05, -0.0004, 3.1415, 0.0002],a=5.000000,v=5.000000,r=0.000000)
movej([-1.3615, -2.0244, -1.5691, -2.6895, 0.2092, 1.2197],a=5.000000,v=5.000000,r=0.050000)
movel(p[-0.2875, -0.375, 0.0, -0.0004, 3.1415, 0.0002],a=0.500000,v=0.300000,r=0.000000)
movel([-1.2437, -1.9458, -2.0485, -2.2887, 0.0128, 1.2197],a=5.000000,v=5.000000,r=0.050000)
# Various comments
## Various comments
### Various comments
И мне нужно разделить строки на два набора (для позднее преобразование в pandas фреймы данных), один набор состоит из строк, начинающихся с p с «movej (p [» или «movel (p [»), а другой состоит из строк без p -строка с «movej ( ["или" movel ([".
movej(p[-0.2875, -0.4, 0.05, -0.0004, 3.1415, 0.0002],a=5.000000,v=5.000000,r=0.000000)
movel(p[-0.2875, -0.375, 0.0, -0.0004, 3.1415, 0.0002],a=0.500000,v=0.300000,r=0.000000)
and
movej([-1.3615, -2.0244, -1.5691, -2.6895, 0.2092, 1.2197],a=5.000000,v=5.000000,r=0.050000)
movel([-1.2437, -1.9458, -2.0485, -2.2887, 0.0128, 1.2197],a=5.000000,v=5.000000,r=0.050000)
Для этого я создал следующий код, который почти выполняет свою работу.
Проблема, с которой я столкнулся, заключается в том, что он останавливается или не хранит все в строках TCP_lines и Joint_lines. Я также пробовал использовать список с тем же результатом.
with open("SRP_Assemble all BUSH_BEARING onto HPC_FRONT_BOTTOM.script", "r") as f:
lines = f.readlines()
TCP_lines = ""
joint_lines = ""
for line in lines:
if line.startswith(("movej(p" ,"movel(p")):
TCP_lines += line
elif line.startswith(("movej(" ,"movel(")):
joint_lines += line
print (TCP_lines)
print (joint_lines)
EDIT: есть ли на консоли ограниченное пространство для печати результатов? Таким образом, он печатает только первая пара строк?
Я использовал перенаправитель, чтобы распечатать результаты в текстовом поле, и он выглядит нормально ...