In- och utmatning
Programs kommunikation med "omvärlden" kallas för "Input/Output" eller, kort och gott, "IO". Med "omvärlden" menas här bl.a. den som sitter vid datorn, lokala filer på datorn och dokument på nätet.Utskrifter i konsolen: print
Allmän form
print(v1, v2, ..., vn, sep=' ', end='\n')
Parametrar:
- v1, v2, ..., vn värden som skrivs ut.
sep
anger vad som ska skilja värdena åt. Defaultvärdet är blanktecken.end
anger vad utskriften ska avslutas med. Defaultvärdet är radbyte.
Exempel
Anrop | Utskrift | Kommentar |
---|---|---|
print(11, 212, 3.5) | 11 212 3.5 | Tre värden på en rad separerade av blanktecken och med radbyte efter. |
print(11, 212, 3.5, sep=', ') | 11, 212, 3.5 | Tre värden på en rad separerade av komma och blanktecken och med radbyte efter. |
print(11, 212, sep='\n') | 11 212 | Två värden med radbyte mellan. |
print(1/7) | 0.14285714285714285 | Ingen kontroll på antalet decimaler. Se formatering för kontroll av antalet decimaler. |
print('Svaret är ', end='') print('4') | Svaret är 4 | Inget radbyte efter första print . |
Inläsning från konsolen: input
Allmän form
-
input()
Läser en rad tangentbordet och returnerar den som en sträng. -
input(prompt)
Skriver en ledtext före läsandet.
Observera att även tal returneras som strängar och måste konverteras med int
eller float
för att kunna användas i beräkningar.
Exempel
KodenLäsa och skriva filer
En fil är (i detta sammanhang) ett dokument på datorns disk. Filer har namn och är placerade någonstans i datorns filsystem. Filer används (bl a.) till att spara information mellan mer eller mindre permanent.
Man skiljer mellan text-filer och binär-filer. Textfiler innehåller huvudsakligen läsbara tecken (bokstäver, siffror, specialtecken) och har ofta en radindelning. Binära filer kan innehålla t.ex. bild eller ljud. Sådana är således inte direkt läsbara för människor utan måste tolkas av något program. Vi kommer bara behandla textfiler.
För att Python-program ska kunna skriva och/eller läsa en fil måste den öppnas. Det innebär att man kopplar ihop en Python-variabel med ett filobjekt. Man anger också om man avser läsa eller skriva filen.
Skriva en fil
Funktionenprint
som används för att skriva till terminalen kan också användas
för att skriva till filer. Detta anges med file
-parametern.
Exempel:
homeros.txt
) med följande utseende:
(Du kan titta på den genom cat
eller type
beroende på system.
Du kan också öppna den i någon editor.)
.txt
till filnamnet är inte signifikant.
Vi hade kunnat använda t.ex. .py
, .java
eller .html
i stället
även om det skulle kunna uppfattas som märkligt för en användare av programmet.
Två andra metoder i filobjektet kan användas för att skriva till en fil:
write(str) | Skriver ett strängvärde. Ingen radindelning om strängen i sig inte innehåller radslutstecken. |
writelines(lista) | Skriver en lista med ett listelement per rad. |
Läsa en fil
Metoder för läsning:
read() | Läser hela filen och returnerar den som en sträng. |
readline() | Läser och returnerar en rad. Returnerar tom sträng ('') om alla rader lästs. |
readlines() | Läser alla rader och returnerar en lista med de lästa raderna. |
for line in filvariabeln: | Iteration över filvariabeln. Variabeln line kommer successivt innehålla alla rader i filen. |
# Läsa med read:
infil = open(filename, 'r')
print(infil.read())
infil.close()
# Läsa med readline:
infil = open(filename, 'r')
line = infil.readline()
while line != '':
print(line, end='')
line = infil.readline()
infil.close()
print()
# Läsa med readlines:
infil = open(filename, 'r')
lines = infil.readlines()
for line in lines:
print(line, end='')
infil.close()
print()
# Iteration över filvariabeln:
infil = open(filename, 'r')
for line in infil:
print(line, end='')
infil.close()
|
Natten gick hän
och det grydde till dag
och de seglade ständigt
Natten gick hän
och det grydde till dag
och de seglade ständigt
Natten gick hän
och det grydde till dag
och de seglade ständigt
Natten gick hän
och det grydde till dag
och de seglade ständigt
|
end=''
undviker vi dubbel radframmatning i utskrifterna.
Satsen with
Det bästa sättet att öppna filer är att använda en så kallad context manager.
Exempel:
Läsning från en websida
-
urllib
-
urlopen
-
read
,readline
,readlines