Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python Datei-E/A: Eingabe- und Ausgabeoperationen meistern

Ausgabe auf dem Bildschirm

Die einfachste Möglichkeit, Ausgabe zu erzeugen, ist die print-Anweisung, der Sie null oder mehr Ausdrücke, durch Kommas getrennt, übergeben können. Diese Funktion konvertiert die übergebenen Ausdrücke in einen String und schreibt das Ergebnis auf die Standardausgabe:

#!/usr/bin/python
print("Python is really a great language,", "isn't it?")

Dies erzeugt folgende Ausgabe:

Python is really a great language, isn't it?

Tastatureingabe lesen

Python bietet zwei eingebaute Funktionen, um eine Textzeile von der Standardeingabe (standardmäßig die Tastatur) zu lesen:

Hinweis: In Python 3 wurde raw_input in input umbenannt. Das alte input von Python 2 entspricht eval(input()) in Python 3.

Die raw_input-Funktion (Python 2)

raw_input([prompt]) liest eine Zeile von der Standardeingabe und gibt sie als String zurück (ohne das abschließende Newline-Zeichen).

#!/usr/bin/python
str = raw_input("Enter your input: ")
print("Received input is :", str)

Dies fordert Sie auf, einen beliebigen String einzugeben und zeigt denselben String auf dem Bildschirm an. Bei der Eingabe "Hello Python!" lautet die Ausgabe:

Enter your input: Hello Python
Received input is : Hello Python

Die input-Funktion

input([prompt]) entspricht raw_input, geht jedoch davon aus, dass die Eingabe ein gültiger Python-Ausdruck ist und gibt das evaluierte Ergebnis zurück.

#!/usr/bin/python
str = input("Enter your input: ")
print("Received input is :", str)

Bei der Eingabe [x*5 for x in range(2,10,2)] ergibt sich:

Enter your input: [x*5 for x in range(2,10,2)]
Received input is : [10, 20, 30, 40]

Dateien öffnen und schließen

Bisher haben Sie von der Standardein- und -ausgabe gelesen und geschrieben. Nun sehen wir, wie echte Datendateien verwendet werden.

Python stellt grundlegende Funktionen und Methoden bereit, um Dateien standardmäßig zu manipulieren. Die meisten Dateioperationen erfolgen über ein Dateiobjekt.

Die open-Funktion

Bevor Sie eine Datei lesen oder schreiben können, müssen Sie sie mit Pythons eingebauter open()-Funktion öffnen. Diese erstellt ein Dateiobjekt, das für weitere unterstützende Methoden genutzt wird.

Syntax

file_object = open(file_name[, access_mode][, buffering])

Parameter

Dateizugriffsmodi

Nr.Modus & Beschreibung
1r – Nur lesen. Dateizeiger am Anfang. Standardmodus.
2rb – Nur lesen im Binärmodus. Dateizeiger am Anfang.
3r+ – Lesen und schreiben. Dateizeiger am Anfang.
4rb+ – Lesen und schreiben im Binärmodus. Dateizeiger am Anfang.
5w – Nur schreiben. Überschreibt bestehende Datei oder erstellt neue.
6wb – Nur schreiben im Binärmodus. Überschreibt oder erstellt neu.
7w+ – Lesen und schreiben. Überschreibt oder erstellt neu.
8wb+ – Lesen und schreiben im Binärmodus. Überschreibt oder erstellt neu.
9a – Anhängen. Dateizeiger am Ende, falls Datei existiert; sonst neue Datei.
10ab – Anhängen im Binärmodus.
11a+ – Anhängen und lesen. Dateizeiger am Ende, falls Datei existiert.
12ab+ – Anhängen und lesen im Binärmodus.

Attribute des Dateiobjekts

Nach dem Öffnen einer Datei können Sie über das Dateiobjekt verschiedene Informationen abrufen:

Nr.Attribut & Beschreibung
1file.closed – True, wenn Datei geschlossen, sonst False.
2file.mode – Zugriffsmodus, mit dem die Datei geöffnet wurde.
3file.name – Name der Datei.
4file.softspace – False, wenn Leerzeichen bei print explizit erforderlich, sonst True.

Beispiel

#!/usr/bin/python
fo = open("foo.txt", "wb")
print("Name of the file:", fo.name)
print("Closed or not :", fo.closed)
print("Opening mode :", fo.mode)
print("Softspace flag :", fo.softspace)

Ausgabe:

Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0

Die close()-Methode

Die close()-Methode eines Dateiobjekts leert alle nicht geschriebenen Puffer und schließt die Datei. Danach ist kein Schreiben mehr möglich.

Python schließt eine Datei automatisch, wenn das Referenzobjekt einer Datei einem anderen zugewiesen wird. Es ist jedoch gute Praxis, close() explizit aufzurufen.

fileObject.close()

Beispiel

#!/usr/bin/python
fo = open("foo.txt", "wb")
print("Name of the file:", fo.name)
fo.close()

Dateien lesen und schreiben

Das Dateiobjekt bietet Methoden, um das Lesen und Schreiben zu vereinfachen. Wir betrachten read() und write().

Die write()-Methode

Schreibt einen String in eine offene Datei. Python-Strings können Binärdaten enthalten, nicht nur Text. write() fügt kein Newline-Zeichen (\n) am Ende hinzu.

fileObject.write(string)

Beispiel

#!/usr/bin/python
fo = open("foo.txt", "wb")
fo.write("Python is a great language.\nYeah its great!!\n")
fo.close()

Die Datei foo.txt enthält nun:

Python is a great language.
Yeah its great!!

Die read()-Methode

Liest einen String aus einer offenen Datei. Auch hier können Strings Binärdaten enthalten.

fileObject.read([count])

count ist die Anzahl der zu lesenden Bytes. Fehlt der Parameter, wird bis zum Dateiende gelesen.

Beispiel

#!/usr/bin/python
fo = open("foo.txt", "r+")
str = fo.read(10)
print("Read String is :", str)
fo.close()

Ausgabe:

Read String is : Python is

Dateipositionen

tell() gibt die aktuelle Position in der Datei an (nächstes Lesen/Schreiben erfolgt an dieser Byte-Position vom Dateianfang).

seek(offset[, from]) ändert die aktuelle Dateiposition. offset ist die Anzahl der zu verschiebenden Bytes. from legt die Referenzposition fest: 0 = Dateianfang, 1 = aktuelle Position, 2 = Dateiende.

Beispiel

#!/usr/bin/python
fo = open("foo.txt", "r+")
str = fo.read(10)
print("Read String is :", str)
position = fo.tell()
print("Current file position :", position)
fo.seek(0, 0)
str = fo.read(10)
print("Again read String is :", str)
fo.close()

Ausgabe:

Read String is : Python is
Current file position : 10
Again read String is : Python is

Dateien umbenennen und löschen

Das Python-Modul os stellt Methoden für Dateioperationen wie Umbenennen und Löschen bereit. Zuerst importieren:

import os

Die rename()-Methode

Benötigt zwei Argumente: aktuellen Dateinamen und neuen Dateinamen.

os.rename(current_file_name, new_file_name)

Beispiel

#!/usr/bin/python
import os
os.rename("test1.txt", "test2.txt")

Die remove()-Methode

Löscht eine Datei durch Angabe des Dateinamens.

os.remove(file_name)

Beispiel

#!/usr/bin/python
import os
os.remove("test2.txt")

Verzeichnisse in Python

Alle Dateien liegen in Verzeichnissen. Das os-Modul bietet Methoden zum Erstellen, Entfernen und Wechseln von Verzeichnissen.

Die mkdir()-Methode

Erstellt ein Verzeichnis im aktuellen Verzeichnis.

os.mkdir("newdir")

Beispiel

#!/usr/bin/python
import os
os.mkdir("test")

Die chdir()-Methode

Ändert das aktuelle Verzeichnis.

os.chdir("newdir")

Beispiel

#!/usr/bin/python
import os
os.chdir("/home/newdir")

Die getcwd()-Methode

Zeigt das aktuelle Arbeitsverzeichnis an.

os.getcwd()

Beispiel

#!/usr/bin/python
import os
os.getcwd()

Die rmdir()-Methode

Löscht das als Argument übergebene Verzeichnis. Dessen Inhalt muss zuvor entfernt werden.

os.rmdir('dirname')

Beispiel

#!/usr/bin/python
import os
os.rmdir("/tmp/test")

Datei- und Verzeichnismethoden

Drei wichtige Quellen bieten umfangreiche Dienstprogramme für Dateien und Verzeichnisse unter Windows und Unix:

Python

  1. C Eingabe und Ausgabe (I/O) meistern: scanf() und printf() erklärt
  2. C-Dateiverwaltung: I/O mit fopen, fprintf, fread & fseek meistern
  3. Python I/O & Modul-Importe meistern: Praxisleitfaden
  4. Python File I/O: Dateioperationen, Lesen, Schreiben und Verwaltung meistern
  5. Verzeichnis- und Dateioperationen in Python meistern
  6. Datei- und Verzeichnisexistenz in Python prüfen – Ein praktischer Leitfaden
  7. Datei-I/O in C meistern: Erstellen, Öffnen & Verwalten von Dateien
  8. C-Header-Dateien verstehen: Typen, Verwendung und Best Practices
  9. C++ Datei-I/O: Lesen & Schreiben mit fstream
  10. C# Datei-E/A: Lesen, Schreiben & Stream-Verwaltung