### Fil ## Lese fra fil # Det i hovedsak to m?ter ? lese inn fra fil p? # M?te 1: # ?pne fila med open() og lagre den til en variabel # F?rste argument er filbanen (navnet p? fila og eventuelt veien dit gjennom mapper) # Andre argument, "r", spesifiserer at vi har lyst til ? lese fra fila (r for read) # encoding="utf-8" kan v?re n?dvendig for enkelte maskiner, s? det kan v?re lurt ? ta med fil = open("test.txt", "r", encoding="utf-8") # Vi kan n? lese teksten fra fila # Dette kan vi gj?re p? f?lgende m?ter: # 1. Metoden .read() ¨C Henter ut hele teksten som en sammenhengende streng hele_teksten = fil.read() # 2. Metoden .readline() ¨C Henter ut f?rste linje som en streng. Neste gang den kalles hentes andre linje, s? tredje, osv. # print(type(hele_teksten)) ==> str en_linje = fil.readline() # print(type(en_linje)) ==> str # 2. Metoden .readlines() ¨C Henter ut alle linjene som en liste av strenger alle_linjer = fil.readlines() # print(type(alle_linjer)) ==> list[str] # Vi m? s? huske ? lukke den ?pne fila (god skikk for ? unng? problemer) fil.close() # fil.read() fungerer ikke etter dette # M?te 2: # Bruk 'with open()' for ? slippe ? huske p? ? bruke close with open("test.txt", "r", encoding="utf-8") as inndata: # Vi hopper n? et hakk inn. Mens vi er her inne kan vi lest_data = inndata.read() # N? som vi har hoppet tilbake er fila lukket # og inndata.read() fungerer ikke lenger # Men vi kan fortsatt bruke variablen lest_data print(lest_data[:25]) ## Skrive til fil # Vi kan bruke de to samme m?tene for ? skrive til fil # Vi m? bare bytte "r" til "w" for write utfil = open("min-nye-fil.txt", "w", encoding="utf-8") # Men OBS! Dette vil opprette den spesifiserte fila hvis den ikke finnes # Hvis den allerede finnes vil den slette alt som er der fra f?r og skrive over # Man kan ogs? ?pne med "a" for append for ? legge til data p? bunnen av fila # Vi legger til ny tekst med .write() # Legg merke til at vi selv m? legge til linjeskift med \n utfil.write("Dette blir f?rste linje\n") utfil.write("Og dette blir andre") # Husk igjen ? lukke fila! utfil.close()