Je possède ce type de fichier (partie):Converting CNC de vieux forages au nouveau système (en utilisant Python)
H DX=615 DY=425 DZ=22.15 -AB C=0 T=0 R=999 *MM /"def" BX=2.5 BY=452.5 BZ=25 ;M20150710.
XBO X=100 Y=50 Z=5 V=1000 R=0 x=0 y=0 D=10 N="P" F=1 ;Test F1/10P.
...
que je veux convertir à un nouveau système de programmation. Ce que je veux faire est d'abord lire l'en-tête (H) et mettre les valeurs DX, DY et DZ dans des variables nommées respectivement. J'ai réussi à faire cela, mais quand je suis venu pour traiter ma ligne XBO (un forage, dont j'ai besoin X, Y, Z, V, R, x, y, D, N, F et;, également dans des variables séparées) mon code a commencé à avoir l'air très moche très vite.
Je recommençais, et est venu avec ceci:
f = open("input.xxl") # open input file
for line in f:
if Debug==1: print line
for char in line:
charbuffr=charbuffr+char
if "H" in charbuffr:
if Debug==1: print'HEADER found!'
charbuffr=""
if "XBO" in charbuffr:
if Debug==1: print'XBO found!'
charbuffr=""
Cela permet d'identifier correctement les commandes séparées H et XBO, mais je suis un peu coincé maintenant. Je peux utiliser la même méthode pour extraire toutes les variables, des boucles à l'intérieur des boucles H et XBO, mais cela ne semble pas être un bon codage ...
Quelqu'un peut-il me mettre sur le bon pied s'il vous plaît? Je ne veux pas de solution complète, comme j'aime coder (mon travail principal est de coder pour des machines CNC, ce qui semble facile maintenant par rapport à Python), mais j'aimerais savoir quelle approche est la meilleure ...
Utilisez un dictionnaire au lieu de plusieurs variables. – falsetru
Regardez dans 'str.split()', 'dict()', et 'ast.literal_eval()'. – TigerhawkT3