#python #file
#python #файл
Вопрос:
Я пытаюсь написать файл, который содержит три имени заголовка и список пар координат xy.
tittel = ""
xn = ""
yn = ""
x = []
y = []
x_v = []
y_v = []
def verdier():
global x, y, x_v, y_v
x = input("Skriv inn x-koordinatene, with space between each point : ")
y = input("Skriv inn y-koordinatene, with space between each point: ")
x_v = x.split()
y_v = y.split()
x_v = [float(xv) for xv in x_v]
y_v = [float(yv) for yv in y_v]
verdier()
def navn():
global xn, yn, tittel
xn = input("Hva skal x-aksen hete? ")
yn = input("Og hva skal y-aksen hete? ")
tittel = input("Hva ønsker du som tittel på din nye graf? ")
navn()
def dataliste():
global x, y
for x, y in zip(x, y):
print(x, y)
dataliste()
datalisten = zip(x, y)
def skrivfil():
global tittel, xn, yn, x, y
filnavn = input("Skriv inn filnavn: ")
try:
fil = open(filnavn, "w")
fil.write(tittel)
fil.write("n")
fil.write(xn)
fil.write("n")
fil.write(yn)
fil.write("n")
fil.write(datalisten)
fil.close()
except:
print("ERROR")
skrivfil()
Пока я получаю только файл, который я могу открыть в блокноте только с заголовками (несмотря на вывод ОШИБКИ, файл находится в / downloads). Я пробовал разделять значения x и y, но это только усложнило его еще больше.
Комментарии:
1. Избавьтесь от
try...except
, чтобы вы могли видеть ошибку, а затем опубликуйте полную обратную трассировку как часть вашего вопроса.
Ответ №1:
Два комментария к вашей функции записи файла:
- Вы можете использовать
with open(...) as f
для автоматического закрытия файла в случае ошибки. - Вы не можете записывать объекты zip, но вы можете перебирать zip и записывать один за другим.
Это должно сделать:
def skrivfil():
filnavn = input("Skriv inn filnavn: ")
with open(filnavn, "w ") as fil:
fil.write(tittel)
for x0, y0 in zip(x_v, y_v):
fil.write("n%f %f" % (x0, y0))