Abschneiden - anpassen von einer Ausgabe /Datei
Verfasst: Mittwoch 20. April 2022, 13:25
Hallo,
ich hänge gerade fest mit 2 Problemen: (Bin für jede erklärte /dargestellte Verbesserung offen, ich muss hier noch viel lernen)
hier erstmal mein Code:
So nun meine Frage,
also ich bekomme mit der DB Abfrage folgende Ausgabe :
nach meinen umständlichen Code sieht das ganze so aus (aber ich bekomme das Komma in der letzten Zeile nicht weg)
aber so hätte ich es gerne in meiner Datei:
Hab es nur auf dem weg hinbekommen mit den line.replace aber auch hier muss ich jeweils die Datei neu anpacken damit ich einmal ( und ) rausfiltern kann. (wie erwähnt, abgesehen von dem Komma in der letzten Zeile was ich nicht wegbekomme)
Schöner wäre es natürlich das in einem Schritt hinzubekommen.
hatte hier auch erst probiert die org. Datei zu übschreiben:
Hier passierte dann folgendes: Meine try Datei war komplett leer, also statt was zu entfernen wurde alles entfernt und auch hier sehe ich keinen Lösungsweg um '(' und ')' in einem Befehl entfernt zu bekommen. Außerdem finde ich keinen Ansatz um in der letzten Zeile das letzte Komma zu entfernen. (würde ungern auf sed zurückgreifen)
ich hänge gerade fest mit 2 Problemen: (Bin für jede erklärte /dargestellte Verbesserung offen, ich muss hier noch viel lernen)
hier erstmal mein Code:
Code: Alles auswählen
login_data = XXXXXXXXX()
path='/test/try'
DB_CONN_STATEMENT = \
"""
SELECT
name
FROM
liste
WHERE
email ilike '%@test.de';
"""
with psycopg2.connect('host=XXXXX dbname=XXXX user={} password={}'.format(login_data['user'], login_data['password'])) as conn:
with conn.cursor() as cursor:
cursor.execute(DB_CONN_STATEMENT)
fetched_rows = cursor.fetchall()
f = open(path, 'a')
try:
for row in fetched_rows:
f.write(str(row) + "\n")
f.seek(0)
finally:
f.close()
fin = open("/test/try", "rt")
fout = open("/test/try1.txt", "wt")
for line in fin:
fout.write(line.replace('(', ''))
fin.close()
fout.close()
fin1 = open(""/test/try1.txt", "rt")
fout1 = open(""/test/try2.txt", "wt")
for line in fin1:
fout1.write(line.replace(')', ''))
fin1.close()
fout1.close()
So nun meine Frage,
also ich bekomme mit der DB Abfrage folgende Ausgabe :
Code: Alles auswählen
(111,)
(112,)
(113,)
(114,)
Code: Alles auswählen
111,
112,
113,
114,
Code: Alles auswählen
111,
112,
113,
114 ####(letzte Zeile ohne KOMMA)
Schöner wäre es natürlich das in einem Schritt hinzubekommen.
hatte hier auch erst probiert die org. Datei zu übschreiben:
Code: Alles auswählen
with open("/test/try", "rt") as file:
x = file.read()
with open("/test/try", "wt") as file:
x = x.replace("(", "")
fin.write(x)
Hier passierte dann folgendes: Meine try Datei war komplett leer, also statt was zu entfernen wurde alles entfernt und auch hier sehe ich keinen Lösungsweg um '(' und ')' in einem Befehl entfernt zu bekommen. Außerdem finde ich keinen Ansatz um in der letzten Zeile das letzte Komma zu entfernen. (würde ungern auf sed zurückgreifen)