@__blackjack__
dass ich die Namen noch nicht so drauf hab mag daran liegen, dass ich Unterstriche hasse wie die Pest.
und dazu kommt, dass mir solche Namen wie "data" oder "column" die dann u.U. gleichzeitig als Parameter oder sonst was verwendet werden mehr Fragezeichen in den Kopf machen als Klarheit schaffen. Da muss ich mich erst umstellen.
Immerhin muss ich sagen, dass die Klammern vom close() im Code drin waren. Hab mich wohl zu fest gefreut, dass da mal was geklappt hat. Dann hab ich die beim rein kopieren nicht mit markiert.
Und, ja, später hab ich das dann noch mal laufen lassen und dabei ist mir dann das fehlende "e" aufgefallen. (war mir dann aber schon zu spät, musste ja heute früh raus)
Ich hätte das ja auch gerne ein wenig anders gelöst, aber ehrlich: der Hinweis mit with stand zwar schon ganz zu Anfang da, aber geblickt habe ich dabei überhaupt nichts. Wie sollte mir das with denn hier helfen? In dem Code von Sirius3 konnte ich das zwar verwenden, aber so richtig geblickt habe ich das leider nicht.
Und, ich habe ja dann das Problem, dass die Anweisung wie ich sie jetzt verwende, davon ausgeht, dass die Datei die ausgelesen bzw. geschrieben wird im Verzeichnis liegt in der der Code liegt. Das sollte denke ich nicht so der Fall sein. Andernfalls muss ich ja dann doch wieder damit anfangen, den Pfad fest vorzugeben, oder?
Die zig verschiedenen Erklärungen im Internet schaffen es leider nicht, mir das verständlich zu machen.
Danke für alle Tipps, hab das jetzt mal so probiert:
Code: Alles auswählen
import os
import csv
from pathlib import Path
from functools import partial
ABFRAGE_FILENAME = Path(__file__).with_name("TB_Ausgabe_Abfrage8StueckII.txt")
def main():
with ABFRAGE_FILENAME.open() as lines:
data = list(csv.reader(lines, delimiter=";"))
data.pop()
printDat(data)
def printDat(a):
for column, entry in enumerate(a):
#print(column)
text_in_datei_aus_csv =""#Variable für die zu druckende Datei
text_in_datei_aus_csv +='''^XA
^FO15,90^GB780,0,8,^FS
^FO15,250^GB780,0,8,^FS
^FO15,700^GB780,0,8,^FS
^FO0,0^GB600,200,2
^FO15,20^GB780,785,4^FS
^FO0,40^A0,50,50^FB800,1,0,C^FD'''
text_in_datei_aus_csv += "ABC Dingsbums" #muss ich noch rauskriegen wie das in die csv kommt
text_in_datei_aus_csv +='''^FS
^FO0,110^A0,60,60^FB800,1,0,C^FD'''
text_in_datei_aus_csv += entry[1]
text_in_datei_aus_csv +='''^FS
^FO0,190^A0,70,70^FB800,1,0,C^FD'''
text_in_datei_aus_csv += entry[2]
text_in_datei_aus_csv +='''^FS
^FO0,80^BY3
^BCN,170,Y,N,N
^FO130,270^BY4^FD'''
text_in_datei_aus_csv += "12345667890" #das muss noch dynamisch werden
text_in_datei_aus_csv +='''^FS
^FO0,500^A0,60,50^FB800,,0,C^FD'''
text_in_datei_aus_csv += entry[3]
text_in_datei_aus_csv +='''^FS
^FO0,580^A0,60,50^FB800,,0,C^FD'''
text_in_datei_aus_csv += entry[4]
text_in_datei_aus_csv +='''^FS
^FO0,730^A0,60,60^FB800,1,0,C^FD'''
text_in_datei_aus_csv += entry[5]
text_in_datei_aus_csv +='''^FS
^XZ'''
#print(text_in_datei_aus_csv)
ausgabe_name = "testT{}.zpl".format(column)
Path(ausgabe_name).write_text(text_in_datei_aus_csv, encoding="utf-8") #hier gibts dann kein close?
if __name__ == '__main__':
main()
EDIT:
Oder ich schreib das so, dann gehts auch (grade rausgefunden...) , aber was hat das für Vorteile?
Code: Alles auswählen
with Path(ausgabe_name) as raus_text:
raus_text.write_text(text_in_datei_aus_csv, encoding="utf-8")