Python - Bestanden I/O
Dit hoofdstuk behandelt alle basis I/O-functies die beschikbaar zijn in Python. Raadpleeg voor meer functies de standaard Python-documentatie.
Afdrukken naar het scherm
De eenvoudigste manier om uitvoer te produceren is met de print statement waar u nul of meer expressies kunt doorgeven, gescheiden door komma's. Deze functie zet de uitdrukkingen die u doorgeeft om in een tekenreeks en schrijft het resultaat als volgt naar de standaarduitvoer −
Live demo#!/usr/bin/python print "Python is really a great language,", "isn't it?"
Dit geeft het volgende resultaat op uw standaardscherm −
Python is really a great language, isn't it?
Invoer via toetsenbord lezen
Python biedt twee ingebouwde functies om een regel tekst te lezen van standaardinvoer, die standaard van het toetsenbord komt. Deze functies zijn −
- raw_input
- invoer
De raw_input Functie
De raw_input([prompt]) functie leest één regel uit de standaardinvoer en retourneert deze als een tekenreeks (waarbij de achterste nieuwe regel wordt verwijderd).
#!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str
Dit vraagt u om een willekeurige tekenreeks in te voeren en dezelfde tekenreeks wordt op het scherm weergegeven. Toen ik "Hallo Python!" typte, was de uitvoer als volgt −
Enter your input: Hello Python Received input is : Hello Python
De invoer Functie
De invoer([prompt]) functie is gelijk aan raw_input, behalve dat het ervan uitgaat dat de invoer een geldige Python-expressie is en het geëvalueerde resultaat aan u retourneert.
#!/usr/bin/python str = input("Enter your input: ") print "Received input is : ", str
Dit zou het volgende resultaat opleveren tegen de ingevoerde invoer −
Enter your input: [x*5 for x in range(2,10,2)] Recieved input is : [10, 20, 30, 40]
Bestanden openen en sluiten
Tot nu toe heb je gelezen en geschreven naar de standaard invoer en uitvoer. Nu zullen we zien hoe we echte gegevensbestanden kunnen gebruiken.
Python biedt standaard functies en methoden die nodig zijn om bestanden te manipuleren. U kunt de meeste bestandsmanipulatie uitvoeren met een bestand voorwerp.
De open Functie
Voordat je een bestand kunt lezen of schrijven, moet je het openen met Python's ingebouwde open() functie. Deze functie maakt een bestand object, dat zou worden gebruikt om andere bijbehorende ondersteuningsmethoden aan te roepen.
Syntaxis
file object = open(file_name [, access_mode][, buffering])
Hier zijn parameterdetails −
-
bestandsnaam − Het argument bestandsnaam is een tekenreekswaarde die de naam bevat van het bestand dat u wilt openen.
-
access_mode − De access_mode bepaalt de modus waarin het bestand moet worden geopend, d.w.z. lezen, schrijven, toevoegen, enz. Een volledige lijst met mogelijke waarden vindt u hieronder in de tabel. Dit is een optionele parameter en de standaard bestandstoegangsmodus is lezen (r).
-
bufferen − Als de bufferwaarde op 0 staat, vindt er geen buffering plaats. Als de bufferwaarde 1 is, wordt lijnbuffering uitgevoerd tijdens het openen van een bestand. Als u de bufferwaarde opgeeft als een geheel getal groter dan 1, wordt de bufferactie uitgevoerd met de aangegeven buffergrootte. Indien negatief, is de buffergrootte de systeemstandaard (standaardgedrag).
Hier is een lijst met de verschillende manieren om een bestand te openen −
Sr.nr. | Modiën en beschrijving |
---|---|
1 | r Opent een bestand om alleen te lezen. De bestandsaanwijzer wordt aan het begin van het bestand geplaatst. Dit is de standaardmodus. |
2 | rb Opent een bestand om alleen in binair formaat te lezen. De bestandsaanwijzer wordt aan het begin van het bestand geplaatst. Dit is de standaardmodus. |
3 | r+ Opent een bestand voor zowel lezen als schrijven. De bestandsaanwijzer aan het begin van het bestand. |
4 | rb+ Opent een bestand voor zowel lezen als schrijven in binair formaat. De bestandsaanwijzer aan het begin van het bestand. |
5 | met Opent een bestand om alleen te schrijven. Overschrijft het bestand als het bestand bestaat. Als het bestand niet bestaat, maakt u een nieuw bestand om te schrijven. |
6 | wb Opent een bestand om alleen in binair formaat te schrijven. Overschrijft het bestand als het bestand bestaat. Als het bestand niet bestaat, maakt u een nieuw bestand om te schrijven. |
7 | w+ Opent een bestand voor zowel schrijven als lezen. Overschrijft het bestaande bestand als het bestand bestaat. Als het bestand niet bestaat, wordt een nieuw bestand gemaakt voor lezen en schrijven. |
8 | wb+ Opent een bestand voor zowel schrijven als lezen in binair formaat. Overschrijft het bestaande bestand als het bestand bestaat. Als het bestand niet bestaat, wordt een nieuw bestand gemaakt voor lezen en schrijven. |
9 | een Opent een bestand om toe te voegen. De bestandsaanwijzer staat aan het einde van het bestand als het bestand bestaat. Dat wil zeggen, het bestand bevindt zich in de toevoegmodus. Als het bestand niet bestaat, wordt een nieuw bestand gemaakt om te schrijven. |
10 | ab Opent een bestand om in binair formaat toe te voegen. De bestandsaanwijzer staat aan het einde van het bestand als het bestand bestaat. Dat wil zeggen, het bestand bevindt zich in de toevoegmodus. Als het bestand niet bestaat, wordt een nieuw bestand gemaakt om te schrijven. |
11 | een+ Opent een bestand voor zowel toevoegen als lezen. De bestandsaanwijzer staat aan het einde van het bestand als het bestand bestaat. Het bestand wordt geopend in de toevoegmodus. Als het bestand niet bestaat, wordt een nieuw bestand gemaakt om te lezen en te schrijven. |
12 | ab+ Opent een bestand voor zowel toevoegen als lezen in binair formaat. De bestandsaanwijzer staat aan het einde van het bestand als het bestand bestaat. Het bestand wordt geopend in de toevoegmodus. Als het bestand niet bestaat, wordt een nieuw bestand gemaakt om te lezen en te schrijven. |
Het bestand Objectkenmerken
Zodra een bestand is geopend en je hebt één bestand object, kunt u verschillende informatie over dat bestand krijgen.
Hier is een lijst van alle attributen gerelateerd aan bestandsobject −
Sr.nr. | Kenmerk en beschrijving |
---|---|
1 | bestand.gesloten Retourneert waar als het bestand is gesloten, anders onwaar. |
2 | file.mode Geeft de toegangsmodus terug waarmee het bestand is geopend. |
3 | bestandsnaam Geeft de naam van het bestand terug. |
4 | file.softspace Retourneert false als er expliciet ruimte is vereist bij print, anders true. |
Voorbeeld
Live demo#!/usr/bin/python # Open a file 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
Dit levert het volgende resultaat op −
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
De close() Methode
De methode close() van een bestand object wist alle ongeschreven informatie en sluit het bestandsobject, waarna er niet meer geschreven kan worden.
Python sluit automatisch een bestand wanneer het referentieobject van een bestand opnieuw wordt toegewezen aan een ander bestand. Het is een goede gewoonte om de methode close() te gebruiken om een bestand te sluiten.
Syntaxis
fileObject.close()
Voorbeeld
Live demo#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close()
Dit levert het volgende resultaat op −
Name of the file: foo.txt
Bestanden lezen en schrijven
Het bestand object biedt een reeks toegangsmethoden om ons leven gemakkelijker te maken. We zouden zien hoe we read() . moeten gebruiken en schrijf() methoden om bestanden te lezen en te schrijven.
De write() Methode
De write() methode schrijft elke string naar een open bestand. Het is belangrijk op te merken dat Python-strings binaire gegevens kunnen hebben en niet alleen tekst.
De methode write() voegt geen teken voor een nieuwe regel ('\n') toe aan het einde van de tekenreeks −
Syntaxis
fileObject.write(string)
Hier is de doorgegeven parameter de inhoud die in het geopende bestand moet worden geschreven.
Voorbeeld
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
De bovenstaande methode zou foo.txt . creëren bestand en zou bepaalde inhoud in dat bestand schrijven en uiteindelijk zou het dat bestand sluiten. Als u dit bestand zou openen, zou het de volgende inhoud hebben.
Python is a great language. Yeah its great!!
De read() Methode
De read() methode leest een string uit een open bestand. Het is belangrijk op te merken dat Python-strings binaire gegevens kunnen hebben. behalve tekstgegevens.
Syntaxis
fileObject.read([count])
Hier is de doorgegeven parameter het aantal bytes dat moet worden gelezen uit het geopende bestand. Deze methode begint met lezen vanaf het begin van het bestand en als count ontbreekt, dan probeert het zoveel mogelijk te lezen, misschien tot het einde van het bestand.
Voorbeeld
Laten we een bestand foo.txt . nemen , die we hierboven hebben gemaakt.
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close()
Dit levert het volgende resultaat op −
Read String is : Python is
Bestandsposities
De tel() methode vertelt u de huidige positie in het bestand; met andere woorden, het volgende lezen of schrijven zal plaatsvinden op zoveel bytes vanaf het begin van het bestand.
De seek(offset[, from]) methode verandert de huidige bestandspositie. De offset argument geeft het aantal te verplaatsen bytes aan. De van argument specificeert de referentiepositie van waaruit de bytes moeten worden verplaatst.
Als van is ingesteld op 0, betekent dit dat u het begin van het bestand als referentiepositie moet gebruiken en 1 betekent dat u de huidige positie als referentiepositie moet gebruiken en als deze is ingesteld op 2, wordt het einde van het bestand als referentiepositie genomen.
Voorbeeld
Laten we een bestand foo.txt . nemen , die we hierboven hebben gemaakt.
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file fo.close()
Dit levert het volgende resultaat op −
Read String is : Python is Current file position : 10 Again read String is : Python is
Bestanden hernoemen en verwijderen
Python os module biedt methoden die u helpen bij het uitvoeren van bestandsverwerkingsbewerkingen, zoals het hernoemen en verwijderen van bestanden.
Om deze module te gebruiken, moet u deze eerst importeren en daarna kunt u alle gerelateerde functies oproepen.
De rename()-methode
De rename() methode heeft twee argumenten, de huidige bestandsnaam en de nieuwe bestandsnaam.
Syntaxis
os.rename(current_file_name, new_file_name)
Voorbeeld
Hieronder volgt het voorbeeld om een bestaand bestand te hernoemen test1.txt
#!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" )
De verwijder() Methode
U kunt de remove() . gebruiken methode om bestanden te verwijderen door de naam van het te verwijderen bestand als argument op te geven.
Syntaxis
os.remove(file_name)
Voorbeeld
Hieronder volgt het voorbeeld om een bestaand bestand test2.txt . te verwijderen
#!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt")
Mappen in Python
Alle bestanden bevinden zich in verschillende mappen en Python heeft er ook geen probleem mee om deze te verwerken. De o's module heeft verschillende methoden die u helpen bij het maken, verwijderen en wijzigen van mappen.
De mkdir() Methode
U kunt de mkdir() . gebruiken methode van de os module om mappen in de huidige map te maken. U moet aan deze methode een argument toevoegen dat de naam van de aan te maken directory bevat.
Syntaxis
os.mkdir("newdir")
Voorbeeld
Hieronder volgt het voorbeeld om een directory test aan te maken in de huidige map −
#!/usr/bin/python import os # Create a directory "test" os.mkdir("test")
De chdir() Methode
U kunt de chdir() . gebruiken methode om de huidige map te wijzigen. De methode chdir() neemt een argument aan, wat de naam is van de map waarvan u de huidige map wilt maken.
Syntaxis
os.chdir("newdir")
Voorbeeld
Hieronder volgt het voorbeeld om naar de map "/home/newdir" te gaan −
#!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir")
De getcwd() Methode
De getcwd() methode geeft de huidige werkmap weer.
Syntaxis
os.getcwd()
Voorbeeld
Hieronder volgt het voorbeeld om de huidige map te geven −
#!/usr/bin/python import os # This would give location of the current directory os.getcwd()
De rmdir() Methode
De rmdir() methode verwijdert de map, die als argument in de methode wordt doorgegeven.
Voordat u een map verwijdert, moet alle inhoud erin worden verwijderd.
Syntaxis
os.rmdir('dirname')
Voorbeeld
Hieronder volgt het voorbeeld om de map "/tmp/test" te verwijderen. Het is vereist om de volledige naam van de directory op te geven, anders zou het naar die directory in de huidige directory zoeken.
#!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" )
Bestands- en mapgerelateerde methoden
Er zijn drie belangrijke bronnen die een breed scala aan hulpprogramma's bieden voor het verwerken en manipuleren van bestanden en mappen op Windows- en Unix-besturingssystemen. Ze zijn als volgt −
-
Bestandsobjectmethoden:het bestand object biedt functies om bestanden te manipuleren.
-
OS-objectmethoden:dit biedt methoden om zowel bestanden als mappen te verwerken.
Python
- C Ingang Uitgang (I/O)
- C Bestandsverwerking
- Python invoer, uitvoer en import
- Python-bestand I/O
- Python-directory en bestandsbeheer
- Python controleren of bestand bestaat | Hoe te controleren of er een directory bestaat in Python
- C - Bestand I/O
- C - Koptekstbestanden
- C++-bestanden en -streams
- C# - Bestand I/O
- Wat is een Mill-bestand?