Python proporciona funcions integrades per crear, escriure i llegir fitxers. A Python es poden gestionar dos tipus de fitxers, fitxers de text normals i fitxers binaris (escrits en llenguatge binari, 0 i 1).
- Fitxers de text: En aquest tipus de fitxer, cada línia de text s'acaba amb un caràcter especial anomenat EOL (Fi de línia), que és el caràcter de línia nova (‘ ’) a Python per defecte.
- Fitxers binaris: En aquest tipus de fitxers, no hi ha cap terminador per a una línia i les dades s'emmagatzemen després de convertir-les en un llenguatge binari comprensible per la màquina.
Aquest article se centrarà a obrir, tancar, llegir i escriure dades en un fitxer de text. Aquí també veurem com arribar Python sortida en un fitxer de text.
Modes d'accés a fitxers
Els modes d'accés regeixen el tipus d'operacions possibles al fitxer obert. Es refereix a com s'utilitzarà el fitxer un cop obert. Aquests modes també defineixen la ubicació del Control de fitxers a l'arxiu. El controlador del fitxer és com un cursor, que defineix des d'on s'han de llegir o escriure les dades al fitxer i podem obtenir la sortida de Python en un fitxer de text.
Hi ha 6 modes d'accés a Python:
- Només lectura (‘r’)
- Llegir i escriure (‘r+’)
- Només escriptura ('w')
- Escriure i llegir ('w+')
- Només adjunta ('a')
- Afegiu i llegiu ('a+')
Només lectura (‘r’): Obre el fitxer de text per llegir-lo. El mànec es col·loca al principi del fitxer. Si el fitxer no existeix, genera l'error d'E/S. Aquest és també el mode predeterminat en què s'obre un fitxer.
Llegir i escriure (‘r+’): Obriu el fitxer per llegir i escriure. El mànec es col·loca al principi del fitxer. Genera un error d'E/S si el fitxer no existeix.
Només escriptura ('w'): Obriu el fitxer per escriure. Per als fitxers existents, les dades es trunquen i es sobreescriuen. El mànec es col·loca al principi del fitxer. Crea el fitxer si el fitxer no existeix.
Escriure i llegir ('w+') : Obriu el fitxer per llegir i escriure. Per a un fitxer existent, les dades es trunquen i es sobreescriuen. El mànec es col·loca al principi del fitxer.
Només adjunta ('a') : Obriu el fitxer per escriure. El fitxer es crea si no existeix. El mànec es col·loca al final del fitxer. Les dades que s'escriuen s'inseriran al final, després de les dades existents.
Afegiu i llegiu (‘a+’): Obriu el fitxer per llegir i escriure. El fitxer es crea si no existeix. El mànec es col·loca al final del fitxer. Les dades que s'escriuen s'inseriran al final, després de les dades existents.
Com es carreguen els fitxers a la memòria primària?
Hi ha dos tipus de memòria en un ordinador, és a dir, la memòria primària i la secundària, cada fitxer que heu desat o qualsevol persona desada es troba a la memòria secundària perquè les dades de la memòria primària s'eliminen quan l'ordinador s'apaga. Per tant, quan necessiteu canviar qualsevol fitxer de text o només per treballar-hi a Python, heu de carregar aquest fitxer a la memòria primària. Python interactua amb fitxers carregats a la memòria primària o a la memòria principal gestors de fitxers (Així és com el vostre sistema operatiu dóna accés a Python per interactuar amb el fitxer que heu obert cercant el fitxer a la seva memòria si es troba que retorna un controlador de fitxers i després podeu treballar amb el fitxer).
Obrir un fitxer de text en Python
Es fa mitjançant la funció open(). No cal importar cap mòdul per a aquesta funció.
File_object = open(r'File_Name','Access_Mode')>
El fitxer hauria d'existir al mateix directori que el fitxer del programa Python, en cas contrari, l'adreça completa del fitxer s'hauria d'escriure en lloc del nom del fitxer. Nota: El r es col·loca abans del nom del fitxer per evitar que els caràcters de la cadena del nom del fitxer siguin tractats com a caràcters especials. Per exemple, si hi ha emp a l'adreça del fitxer, llavors es tracta com el caràcter de tabulació i es genera un error d'adreça no vàlida. La r fa que la cadena sigui en brut, és a dir, indica que la cadena no té cap caràcter especial. La r es pot ignorar si el fitxer es troba al mateix directori i l'adreça no s'està col·locant.
Python
diferència entre empresa i empresa
# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)> |
>
>
Aquí, el fitxer1 es crea com a objecte per al meu fitxer1 i el fitxer2 com a objecte per al meu fitxer2
Tancant un fitxer de text en Python
La funció close() tanca el fitxer i allibera l'espai de memòria adquirit per aquest fitxer. S'utilitza en el moment en què el fitxer ja no és necessari o si s'ha d'obrir en un mode de fitxer diferent. File_object.close()
Python
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
text subratllat css
>
Escrivint en un fitxer en Python
Hi ha dues maneres d'escriure en un fitxer:
- Utilitzant write()
- Ús de línies d'escriptura ()
Escriure en un fitxer de text Python mitjançant write()
escriure(): Insereix la cadena str1 en una sola línia al fitxer de text.
File_object.write(str1)>
Escriure en un fitxer de text utilitzant línies d'escriptura ()
línies d'escriptura (): Per obtenir una llista d'elements de cadena, cada cadena s'insereix al fitxer de text. S'utilitza per inserir diverses cadenes alhora.
File_object.writelines(L) for L = [str1, str2, str3]>
Referència: escriure () VS línies d'escriptura ()
Lectura d'un fitxer en Python
Hi ha tres maneres de llegir dades d'un fitxer de text:
- Utilitzant read()
- Utilitzant readline()
- Utilitzant línies de lectura ()
Llegir des d'un fitxer amb read()
llegir(): Retorna els bytes llegits en forma de cadena. Llegeix n bytes, si no s'especifica n, llegeix tot el fitxer.
File_object.read([n])>
Llegir un fitxer de text amb readline()
readline(): Llegeix una línia del fitxer i retorna en forma de cadena. Per a n especificat, llegeix com a màxim n bytes. Tanmateix, no llegeix més d'una línia, fins i tot si n supera la longitud de la línia.
File_object.readline([n])>
Llegir un fitxer amb readlines()
readlines(): Llegeix totes les línies i les retorna com a cada línia un element de cadena d'una llista.
File_object.readlines()>
Nota: ' ' es tracta com un caràcter especial de dos bytes.
En aquest exemple, es crea i s'obre un fitxer anomenat myfile.txt en mode d'escriptura ('w'>). Les dades s'escriuen al fitxer utilitzantwrite>iwritelines>mètodes. Aleshores, el fitxer es torna a obrir en mode de lectura i adjunta ('r+'>). Diverses operacions de lectura, incloentread>,readline>,readlines>, i l'ús deseek>, mostren diferents maneres de recuperar dades del fitxer. Finalment, el fitxer es tanca.
Python 3
# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> #
is placed to indicate EOL (End of Line)> file1.write(>'Hello
'>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()> |
>
>
Sortida:
Output of Read function is Hello This is Delhi This is Paris This is London Output of Readline function is Hello Output of Read(9) function is Hello Th Output of Readline(9) function is Hello Output of Readlines function is ['Hello ', 'This is Delhi ', 'This is Paris ', 'This is London ']>
Afegir a un fitxer en Python
En aquest exemple, un fitxer anomenat myfile.txt s'obre inicialment en mode d'escriptura ('w'>) per escriure línies de text. Aleshores, el fitxer es torna a obrir en mode d'afegir ('a'>), i Avui s'afegeix al contingut existent. La sortida després d'afegir es mostra ambreadlines>. Posteriorment, el fitxer es torna a obrir en mode d'escriptura, sobreescrivint el contingut amb Tomorrow. La sortida final després d'escriure es mostra ambreadlines>.
Python 3
matrius bash
# Python program to illustrate> # Append vs write mode> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)>#append mode> file1.write(>'Today
'>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.readlines())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)>#write mode> file1.write(>'Tomorrow
'>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.readlines())> print>()> file1.close()> |
>
>
Sortida:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Article relacionat:
- Objectes de fitxer en Python