Pythonban "write" miért nem írja be az adataimat egymás alatti sorokba (csak az utolsó adatsor van az output fájlban), miközben a print ezt megszi standard kimeneten?
Gedittel megnyitva a data.out fájlt, az utolsó adatsor van benne (a b c d) és nincs alatta új sor kezdve, pedig alkalmaztam a \n-et és az os-t is importáltam.
Köszönök szépen minden segítséget, nagyon kezdő vagyok!
import matplotlib.pyplot as plt
import numpy as np
import math
import io
import os
import sys
from collections import namedtuple
for templine in templines:
..
...
.....
print a, b, c, d
output = open("data.out", "w")
output.write( str(a) + " " + str(b) + " " + str(c) + " " + str(d) + "\n" )
output.close()
Nem látszik a behúzás, a lehetséges hibára tippelek egyet:
Ha az open, write és close a cikluson belül vannak, az úgy nem lesz jó, mert az open "w" módban újrakreálja a fájlt. Az open és close cikluson kívül kéne.
Közben rájöttem, én ügyes, a ciklus közben nyitottam meg és írtam felül mindig a fájlt...
Csodálkoztam, hogy nincs meg, csak a ciklus utolsó adatsora.
Tehát helyesen a for ciklus előtt megynyitva.:
import matplotlib.pyplot as plt
import numpy as np
import math
import io
import os
import sys
from collections import namedtuple
output = open("data.out", "w")
for templine in templines:
..
...
.....
print a, b, c, d
output.write( str(a) + " " + str(b) + " " + str(c) + " " + str(d) + "\n" )
output.close()
(A tab-ok itt eltűnnek, de természetesen a ciklus alatt vannak, illetve az "output.close()" egy "szinten" van a for ciklussal, tehát nincsen előtte tabulátor)
Kezdőként, lényeg, hogy működik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!