Ich habe viele Dateien, deren Namen nur Zahlen sind. (Beginnend von 1 bis zu der maximalen Anzahl) und jede dieser Dateien ähnelt einander durch ihre "Tags" (ObjectID =, X =, Y = usw.), aber die Werte nach diesen Tags sind nicht gleich überhaupt.Daten aus einer Textdatei in eine Ausgabedatei extrahieren
Ich wollte meine Arbeit erleichtern von manuell kopieren/Einfügen der Daten von einer Datei in eine andere und machte ein kleines Skript mit Python (da ich etwas darin erfahren bin).
Dies ist die vollständige Skript:
import os
BASE_DIRECTORY = 'C:\Users\Tom\Desktop\TheServer\scriptfiles\Objects'
output_file = open('output.txt', 'w')
output = {}
file_list = []
for (dirpath, dirnames, filenames) in os.walk(BASE_DIRECTORY):
for f in filenames:
if 'txt' in str(f):
e = os.path.join(str(dirpath), str(f))
file_list.append(e)
for f in file_list:
print f
txtfile = open(f, 'r')
output[f] = []
for line in txtfile:
if 'ObjectID =' in line:
output[f].append(line)
elif 'X =' in line:
output[f].append(line)
elif 'Y =' in line:
output[f].append(line)
tabs = []
for tab in output:
tabs.append(tab)
tabs.sort()
for tab in tabs:
for row in output[tab]:
output_file.write(row + '')
nun alles funktioniert gut, sieht die Ausgabedatei wie folgt aus:
ObjectID = 1216
X = -1480.500610
Y = 2610.885742
ObjectID = 970
X = -1517.210693
Y = 2522.842285
ObjectID = 3802
X = -1512.156616
Y = 2521.116210
etc.
Aber ich will nicht, dass es so sein (Jeder Wert hat eine neue Zeile). Ich brauche es, dies für jede Datei zu tun:
- Lesen Sie die Datei.
- Entfernen Sie die Tags vor den Werten.
- Formatieren Sie eine einzelne Zeile mit diesen Werten im Ausgabeordner. (Nehmen wir an, ich möchte es so aussehen lassen: "(1216, -1480.500610,2522.842285)")
- Schreiben Sie diese Zeile in den Ausgabeordner.
- Wiederholen Sie für jede Datei.
Irgendwelche Hilfe bitte?
konnten Sie einige Beispielzeilen aus einer Datei einfügen Sie lesen müssen? – Kruser
Wie die Ausgabezeilen –
Ich habe Code hinzugefügt, in dem Sie die Werte in einer einzigen Zeile anhängen. – Kruser