Вы можете напрямую записать числа с плавающей точкой в ваш файл:
Тестовые данные:
import random
tupledata = [(random.uniform(-5,5),random.uniform(-5,5) ) for _ in range(10)]
print(tupledata)
Вывод:
[(1.4248082335110652, 1.9169955985773148), (0.7948001195399392, 0.6827204752328884),
(-0.7506234890561183, 3.5787165366514735), (-1.0180103847958843, 2.260945997153615),
(-2.951745273938622, 4.0178333333006435), (1.8200624561140613, -2.048841087823593),
(-2.2727453771856765, 1.3697390993773828), (1.3427726323007603, -1.7616141110472583),
(0.5022889371913024, 4.88736204694349), (2.345381610723872, -2.2849852099748915)]
Запись в формате:
with open("n.txt","w") as w:
# w.write(f"{len(tupledata)}\n") # uncomment for line number on top
for t in tupledata:
w.write("{:.3f},{:.3f}\n".format(*t))
# for python 3.6 up you can alternatively use string literal interpolation:
# see https://www.python.org/dev/peps/pep-0498/
# w.write(f"{t[0]:.3f},{t[1]:.3f}\n")
with open("n.txt","r") as r:
print(r.read())
Вывод в файл:
1.425,1.917
0.795,0.683
-0.751,3.579
-1.018,2.261
-2.952,4.018
1.820,-2.049
-2.273,1.370
1.343,-1.762
0.502,4.887
2.345,-2.285
См. собственное имя для оператора python *? , что делает *t
.Подсказка: print(*[1,2,3])
== print(1,2,3)