Ich versuche derzeit, eine Liste in eine CSV-Datei zu schreiben, so dass es X-Werte pro Zeile gibt (mit der Anzahl der Werte ein Vielfaches von x ist). Ich suche schon seit einiger Zeit nach einer Lösung und ich habe eine Reihe von Möglichkeiten gefunden, mich dem Thema zu nähern, aber ich kann den Code nicht dazu bringen, das zu tun, was ich will.Schreiben x Anzahl der Werte in jeder Zeile in TXT-Datei
Dies ist mein hypothetisches Beispiel ... Ich habe versucht, die Liste zip, damit ist eine Liste von Listen in einem Versuch, es pro Zeile 2 Werte schreiben zu haben. Es gibt jedoch keinen Nutzen; das ist, was passiert ...
ich meine Liste in der TXT-Datei wie folgt aussehen wollen:
Chocolates,3
Novels,14
Pens,4
Smiles,78
aber in meiner Codierung, sieht es so aus ...
record1 = ['Chocolates', '3', 'Novels', '14', 'Pens', '4', 'Smiles', '78']
ich habe diese es zip:
records = [record1[i:i+2] for i in range(0, len(record1), 2)]
prize = open("box.txt","w")
writer = csv.writer(prize)
writer.writerow(records)
Allerdings sieht es so in der txt-Datei
"['Chocolates', '3']","['4', '14']","['Pens', '4']","['Smiles', '78']"
ich auch versucht habe, anders die Liste in die Datei zu schreiben ...
prize = open("box.txt","w")
writer = csv.writer(prize)
for record in records:
writer.writerow(records)
prize.close()
Aber es scheint wie folgt aus:
"['Chocolates', '3']","['hiii', '14']","['Pens', '4']","['Smiles', '78']"
"['Chocolates', '3']","['hiii', '14']","['Pens', '4']","['Smiles', '78']"
"['Chocolates', '3']","['hiii', '14']","['Pens', '4']","['Smiles', '78']"
"['Chocolates', '3']","['hiii', '14']","['Pens', '4']","['Smiles', '78']"
Ich weiß nicht, ob ich auf bin die richtige Spur oder wenn mein Ansatz richtig ist. Ich dachte, dass das Aussehen von der Erscheinung der Liste abhing, aber ich fange an zu glauben, dass es davon abhängt, wie ich es in die Datei schreibe.
Vielen Dank für das Lesen. Hoffentlich war meine Erklärung klar, sorry wenn es nicht war.
'>>> record1 = [ 'Schokolade', '3',‚Romane ',' 14 ',' Stifte ',' 4 ',' Lächeln ',' 78 '] >>> [record1 [i: i + 2] für i im Bereich (0, len (record1), 2)] [['Chocolates', '3'], ['Romane', '14'], ['Pens', '4'], ['Smiles', '78']] ' – Natecat
Es sei denn du versuchst es nur lernen das 'csv' Modell, wäre Ihr Fall einfacher, einfach direkt zu schreiben. Für allgemeine Umgruppierung (dh, Partitionierung), siehe http://stackoverflow.com/questions/3992735/python-generator-that-groups-another-iterable-into-groups-of-n – Alan