Da Sie die gleiche Anzahl von Zeilen von Freq und Datenzeilen haben, sollte dieses Stück Code den Trick:
#imports OrderedDict to have an Ordered dictionary
from collections import OrderedDict
#opens files
my_file = open('freq.txt','r')
my_new_file = open("new.txt",'w')
#saves lines of file as a list, with each line being one item in the list
lines_list = my_file.readlines()
#creates empty dictionary to fill with data
freq_data = OrderedDict()
#iterates through lines and adds to dictionary, with freq as key and data as value
for line in range(len(lines_list)/2):
freq_data[lines_list[line]] = lines_list[line+10]
keys = freq_data.keys()
#writes to your new file
for i in keys:
my_new_file.write(i.strip() + ' ; ' + freq_data[i])
#closes both files
my_file.close()
my_new_file.close()
Wesentliches, was diese code does öffnet die Datei, verbindet jede freq mit einem entsprechenden Datenwert und schreibt diesen in eine neue Datei. Sie können die Linie
freq_data[lines_list[line]] = lines_list[line+10]
zu was auch immer Anzahl der Zeilen ändern Sie Ihre Daten durch zwei geteilt hat, so dass für Sie wäre es
freq_data[lines_list[line]] = lines_list[line+201]
sein Dadurch wird die Textdatei, die wie folgt aussieht:
freq1 freq2 freq3 ... data1 Daten2 data3
... in
freq1; data1
freq2; data2
freq3; data3 ...
Hoffe, das hilft!
Gibt es eine Eins-zu-eins-Zuordnung und es ist garantiert, dass es N Zeilen von Freq und dann N Zeilen von Daten gibt? Wenn ja, und Sie können die Datei in den Speicher laden - Sie können es dann in zwei Teile teilen und sie zusammen zippen –
Ja, es wird 201 Linien von Frequenz und 201 Zeilen von Daten für 95% meiner Messungen geben. Wie kann ich die Datei in den Speicher laden, aufteilen und zurücksenden? Kann ich ein ";" Zeichen, um die Spalten zusammen zurückzuziehen? –