Ich arbeite an einem kleinen Projekt in BGE und versuche, data.txt in eine data.csv-Datei zu importieren und die Daten dann in zwei Spalten aufzuteilen.CSV-Daten in Blender Game Engine mit Python teilen
Meine data.txt sieht so aus;
Breathing rate:, 1.0
Pulse:, 140
Spinal Injury:, Yes
Wie Sie vermuten würden, möchte ich "," als Trennzeichen für die Spalten.
Und hier ist mein aktueller Code;
try:
file = open(path+"dialogue.txt", 'r')
info = file.readlines()
own.text = str(info[currentLineNumber])
except:
own.text = "end of script"
column1 = []
column2 = []
if own ["currentLine"] == 10:
own.sendMessage("resume")
with open(path+"data.txt", 'r') as in_file:
stripped = (line.strip() for line in in_file)
datalines = (line.split(",") for line in stripped if line)
with open(path+"data.csv", 'w') as out_file:
writer = csv.writer(out_file)
writer.writerow(('subject', 'value'))
writer.writerow(('ID: ', (uuid.uuid1())))
writer.writerows(datalines)
os.rename(path+"data.csv", path+"newData.csv")
with open('newData.csv', 'r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
column1.append(row[0])
column2.append(row[1])
ich die Daten zu data.csv importieren kann, aber ich kann die Daten in Spalten nicht geteilt, alle importierten Daten in einer einzigen Spalte. Wie kann ich das beheben?
Haben Sie versucht, das Lesen nur die Datei direkt in CSV mit einem 'csv.reader' Objekt? Es scheint, als ob die Daten bereits in einem durch Kommata getrennten Format vorliegen. Wenn Sie nur einen Unterabschnitt möchten, können Sie ihn in einen StringIO pumpen und lesen, dass – theodox
Ich bin ein Neuling, also bin ich mir nicht sicher, ob ich Sie über das Lesen der Datei direkt mit dem Objekt csv.reader verstehe. Ich dachte, mein "reader = csv.reader (f, delimiter = ',')" war der CSV-Reader. – ricster
Ihr Beispiel von data.txt ist durch Komma getrennt, Sie lesen in data.txt und teilen es manuell auf ein Komma und speichern es als CSV, damit Sie es wieder einlesen können. Sie fügen nur die ID-Zeile zum Anfang der Datei hinzu. Ich denke, was Sie versuchen zu tun, nehmen Sie mehrere Zeilen aus data.txt und setzen Sie die zweite Spalte jeder Zeile in Spalten in data.csv? Das wäre 3 Zeilen gelesen in var1, var2, var3 und dann 'writerow (ID, var1 [1], var2 [1], var3 [1])' – sambler