Open in CoCalc

Filhantering

Antag att vi har en lista vars innehåll vi vill spara genom att skriva till en fil.
L = [sin(0.2*k+1) for k in range(5)] L
[0.841470984807897, 0.932039085967226, 0.985449729988460, 0.999573603041505, 0.973847630878195]
Vi öppnar filen för inskrivning ('w'). Om filen inte existerar skapas filen.
fil_ut = open('data.txt', 'w')
Därefter skriver vi listan till filen - ett element per rad.
for a in L : fil_ut.write(str(a) + '\n') # \n = radbrytning
Slutligen stänger vi filen.
fil_ut.close()
Vi kan skriva ut innehållet i filen.
print ''.join(file('data.txt'))
0.841470984807897 0.932039085967226 0.985449729988460 0.999573603041505 0.973847630878195
För att läsa in listan igen öppnar man filen för läsning ('r'), läser in raderna och stänger filen.
fil_in = open('data.txt', 'r') L = fil_in.readlines() # läs raderna i filen som en lista fil_in.close()
Varje element i listan är en textstrng med ett radbrytningstecken.
L
['0.841470984807897\n', '0.932039085967226\n', '0.985449729988460\n', '0.999573603041505\n', '0.973847630878195\n']
Vi kan ta bort radbrytningstecknet med funktionen strip.
L = [t.strip() for t in L] L
['0.841470984807897', '0.932039085967226', '0.985449729988460', '0.999573603041505', '0.973847630878195']
Slutligen konverterar vi varje textsträng till ett flyttal.
L = [RR(t) for t in L] L
[0.841470984807897, 0.932039085967226, 0.985449729988460, 0.999573603041505, 0.973847630878195]
parent(L[1])
Real Field with 53 bits of precision