Input/Output Grundlagen

I/O in Python recht einfach, mächtige Funktionen eingebaut.

Standard-Ausgabe mittels print schon gezeigt:
»> print ('Pi = ', math.pi)
Pi = 3.14159265359

Gegenstück ist Standard-Eingabe mittels input() :


>>> h=input()
2.7
>>> h
'2.7'
>>> h=input()
baby
>>> h
'baby'
>>> h=input()
8+8j
>>> h
'8+8j'
>>> h=input("Zahl:")
Zahl:100
>>> h
'100'


Umwandlung in Standard-Datentypen

input() liefert immer python-string zurück. Wenn andere Datentypen gebraucht werden einfach umwandeln mit entsprechenden cast Funktionen:


>>> h=input()
2.7
>>> h
'2.7'
>>> x=float(h)
>>> x
2.7
>>> i=int(input())
45
>>> i
45
>>> c=complex(input("Komplexe Zahl: "))
Komplexe Zahl: 8+8j
>>> c
(8+8j)


Ein/Ausgabe mit Dateien

ist sehr komfortabel in Python:


f=open("numbers.dat") # Oeffne file
zeilen=f.readlines()  # Lese alle Zeilen --> list of strings
len(zeilen) # 100
zeilen[8] # --> '0.720203\n'
b = float(zeilen[8]) # Konversion string --> float
b # --> 0.72020300000000004
f.close() # file schliessen
#
f=open("numbers.dat") # Oeffne file
for line in f: # iteriere ueber alle Zeilen
    b = float(line)  # Konversion string --> float
f.close() # file schliessen
# ...
f=open("newfile.txt","w")  # Oeffne File zum Schreiben
f.write("Nummer "+str(8.23)+"\n") # Output muss string sein, "\n" fuer Zeilenvorschub



Konversionen in/von Strings


Kommandozeile:
Eine weitere Möglichkeit zur Kommunikation mit dem Programm ist die Übergabe von Argumenten beim Start:


# ReadArgs.py
# Aufruf in shell:
# python3 ReadArgs.py  99 3.1415 blabla

import sys
n=0
for arg in sys.argv: # Argumente als Liste von strings
    print ("arg %d : %s " % ( n, arg ))
    n += 1
#
# arg 0 : ReadArgs.py
# arg 1 : 99
# arg 2 : 3.1415
# arg 3 : blabla


I/O über Internet

Sehr einfach lassen sich auch Files direkt über das Internet öffnen und lesen:


import urllib.request
# f=urllib.request.urlopen("http://www-static.etp.physik.uni-muenchen.de/kurs/Computing/python/source/vorwahl.txt")
# goo.gl shortened URL
f=urllib.request.urlopen("http://goo.gl/8AfpKr")

# f=open("numbers.dat") # Oeffne file
zeilen=f.readlines()  # Lese alle Zeilen --> list of strings
len(zeilen) # 5202