logo

Com llegir des d'un fitxer en Python

Python proporciona funcions integrades per crear, escriure i llegir fitxers. Hi ha dos tipus de fitxers que es poden gestionar en Python, els fitxers de text normals i els 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.

Nota: Per saber més sobre el maneig de fitxers clica aquí .



Mode d'accés

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 controlador del fitxer al fitxer. El controlador del fitxer és com un cursor, que defineix des d'on s'han de llegir o escriure les dades al fitxer. Els diferents modes d'accés per llegir un fitxer són:

    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 un error d'E/S. Aquest és també el mode predeterminat en què s'obre el fitxer. Llegir i escriure (‘r+’): obre 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. Afegiu i llegiu (‘a+’): obre 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.

Nota: Per saber més sobre el mode d'accés clica aquí .

Obrint un fitxer

Es fa mitjançant la funció open(). No cal importar cap mòdul per a aquesta funció.



Sintaxi:

quants 0 en mil milions
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 al lloc del nom del fitxer. Nota: La r es col·loca abans del nom de fitxer per evitar que els caràcters de la cadena de nom de 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 3






# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1>=> open>('MyFile.txt', 'r')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r'D:TextMyFile2.txt', 'r>+>')>

>

>

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

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.

Sintaxi:

File_object.close()>

Python 3


caixa de commutació java



# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>('MyFile.txt', 'r')> file1.close()>

>

>

Lectura d'un fitxer

Hi ha tres maneres de llegir dades d'un fitxer de text.

    read() : retorna els bytes llegits en forma de cadena. Llegeix n bytes, si no s'especifica n, llegeix tot el fitxer.
File_object.read([n])>
    readline() : llegeix una línia del fitxer i torna 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])>
    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.

Exemple:

Python 3




# Program to show various ways to> # read data from a file.> # Creating a file> file1>=> open>('myfile.txt', 'w')> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Writing data to a file> 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>))> print>()> 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 
']>

Amb declaració

with en Python s'utilitza en el maneig d'excepcions per fer que el codi sigui més net i molt més llegible. Simplifica la gestió de recursos comuns com els fluxos de fitxers. A diferència de les implementacions anteriors, no cal cridar a file.close() quan s'utilitza la instrucció with. La declaració amb en si garanteix l'adquisició i l'alliberament adequats dels recursos.

Sintaxi:

with open filename as file:>

Python 3

una matriu d'objectes java




# Program to show various ways to> # read data from a file.> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Creating a file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello ')> >file1.writelines(L)> >file1.close()># to change file access modes> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading from a file> >print>(file1.read())>

>

>

Sortida:

Hello This is Delhi This is Paris This is London>

Nota: Per saber més sobre amb declaració clica aquí .