Liebe Community,
im Zuge meiner Datenauswertung bin ich an meine Python-Grenzen gestoßen:
In einem Ordner befinden sich 44 Unterordner die fortlaufend nummeriert sind (scan00, scan01, ..., scan43), diese habe ich in foldernames1 ausgelesen. Jene Ordner beinhalten alle den gleichnamigen Unterordner "diff_values" in welchen jeweils 297 Textdatein sind (Result of scan01_0001, ..., Result of scan01_0297), diese habe ich als "myFiles" ausgelesen. Die Texdatein habe alle jeweils die gleiche Anzahl an Zeilen und Spalten (mittels tab getrennt).
Nun zu meinem Problem: Das Skript soll nun in jedem Unterordner (beginnend bei scan01/diff_values/ und endend bei scan43/diff_values/) alle txt Datein in eine zusammenfassen. Wobei bei der ersten Datei (z.B. Result of scan_0001) immer die ersten 3 Spalten kopiert werden sollen, und ab der zweiten Textdatei (also von Result of scan01_0002 bis Result of scan01_0297) nur die dritte Spalte kopiert werden soll. In der neuen Textdatei sollen dann alle Spalten nebeneinander (mittels tab getrennt) kopiert werden (damit ich nicht eine lange Wurst an Daten habe und etwas Übersicht bewahren kann). Im Idealfall, beinhalten die neu erstellten Textdatein in der ersten Zeile die Bezeichnungen der jeweiligen Spalten: die erste Spalte "X", die zweite "Y", und dann die Laufvariablen der Textdatein also z.B. 0001 für die Datei Result of scan01_0001 und so weiter (kann auch der ganze Dateinname sein, also z.B. Result of scan01_0001)
Um mein Problem besser zu beschreiben habe ich zwei Fotos angehängt: ein Foto zeigt ein Beispiel der Textdatein die ein neues File kopiert werden soll, die zweite mein gewünschtes Ergebnis. Ich hoffe, dass ich mein Anliegen klar formulieren konnte.
Hier ist mein bisheriger Code (es wird zwar eine Textdatei erstellt, diese enthält allerdings dubiose Werte):
import os
import glob
foldernames1 = []
for foldernames in os.listdir("W:/TEST/"):
if foldernames.startswith("scan"):
# print(foldernames)
foldernames1.append(foldernames)
for i in range(2, len(foldernames1)):
workingpath = "W:/TEST/"+foldernames1[i]+"/diff_values/"
os.chdir(workingpath)
txt_files = glob.glob('*.txt')
column_names = ['X','Y']+txt_files[1:len(txt_files)]
# print(column_names)
files = [open(f) for f in glob.glob('*.txt')]
fout = open ("ResultsCombined.txt", 'w')
for row in range(0, 3371): #len(files)):
for f in files:
fout.write(f.readline().strip().split('\t')[0])
fout.write('\t')
fout.write('\t')
fout.close()
Alles anzeigen
Ich wäre für jede Hilfe äußerst dankbar
Vielen lieben Dank im Voraus und mit den besten Grüßen,
quester