Ich habe ein Python-Skript, das eine Liste von Text liest und es in vier separate Dateien schreibt. Wäre es möglich, nur eine Textdatei zu schreiben, in der jede Linie die gemeinsame Koordinate x Koordinate y Koordinate und z Koordinate getrennt durch Leerzeichen hat? Ich würde schätzen jede HilfeTeilen von Text mit Python
import os
os.chdir('/Users/JP/DevEnv/ASA')
import re
# regex to extract data line
r = re.compile(r"\s*(\d+)\s+X=(\S+)\s+Y=(\S+)\s+Z=(\S+)")
a="""SYSTEM
DOF=UY,UZ,RX LENGTH=FT FORCE=Kip
JOINT
1 X=0 Y=-132.644 Z=0
2 X=0 Y=-80 Z=0
3 X=0 Y=-40 Z=0
4 X=0 Y=0 Z=0
5 X=0 Y=40 Z=0
6 X=0 Y=80 Z=0
7 X=0 Y=132.644 Z=0""".splitlines().__iter__()
# open all 4 files with a meaningful name
files=[open("file_{}.txt".format(x),"w") for x in ["J","X","Y","Z"]]
for line in a:
m = r.match(line)
if m:
# line matches: write in all 4 files (using zip to avoid doing
# it one by one)
for f,v in zip(files,m.groups()):
f.write(v+"\n")
# close all output files now that it's done
for f in files:
f.close()
Die erste Zeile der Ausgabetextdatei würde wie folgt aussehen: 1 0 -132,644 0
kann ich nicht undestand was Sie Zeilen einer einzigen Ausgabedatei aussehen soll und wie unterscheidet es sich von der Eingabedatei sein würde. Zeigen Sie, was es für die Eingabe sein soll, die Sie geben. –
Siehe meine Bearbeitung oben – user7269405
duplizieren, siehe: http://stackoverflow.com/questions/41109713/split-up-a-text-file-based-on-it-contents –