logo

Se scrie în fișier în Python

Python oferă funcții încorporate pentru crearea, scrierea și citirea fișierelor. Există două tipuri de fișiere care pot fi gestionate în python, fișiere text normale și fișiere binare (scrise în limbaj binar, 0 și 1).

șir înlocuiește tot java
    Fișiere text: În acest tip de fișier, fiecare linie de text este terminată cu un caracter special numit EOL (Sfârșit de linie), care este caracterul de linie nouă (‘ ’) în python în mod implicit. Fișiere binare: În acest tip de fișier, nu există un terminator pentru o linie și datele sunt stocate după convertirea lor într-un limbaj binar ușor de înțeles de mașină.

Notă: Pentru a afla mai multe despre gestionarea fișierelor click aici .



Cuprins

Mod de acces

Modurile de acces guvernează tipul de operațiuni posibile în fișierul deschis. Se referă la modul în care fișierul va fi utilizat odată ce este deschis. Aceste moduri definesc, de asemenea, locația mânerului fișierului în fișier. Mânerul fișierului este ca un cursor, care definește de unde trebuie citite sau scrise datele în fișier. Diferite moduri de acces pentru citirea unui fișier sunt:

    Doar scriere (‘w’): Deschideți fișierul pentru scriere. Pentru un fișier existent, datele sunt trunchiate și suprascrise. Mânerul este poziționat la începutul fișierului. Creează fișierul dacă fișierul nu există. Scriere și citire (‘w+’): Deschideți fișierul pentru citire și scriere. Pentru un fișier existent, datele sunt trunchiate și suprascrise. Mânerul este poziționat la începutul fișierului. Numai adăugați (‘a’): Deschideți fișierul pentru scriere. Fișierul este creat dacă nu există. Mânerul este poziționat la capătul fișierului. Datele care se scriu vor fi introduse la final, după datele existente.

Notă: Pentru a afla mai multe despre modul de acces click aici .



Deschiderea unui fișier

Se face folosind funcția open(). Nu este necesar să fie importat niciun modul pentru această funcție. Sintaxă:

File_object = open(r'File_Name', 'Access_Mode')>

Fișierul ar trebui să existe în același director ca și fișierul de program python, altfel adresa completă a fișierului ar trebui să fie scrisă pe locul numelui fișierului. Notă: R este plasat înaintea numelui fișierului pentru a preveni ca caracterele din șirul numelui fișierului să fie tratate ca caractere speciale. De exemplu, dacă există emp în adresa fișierului, atunci este tratat ca caracter tabulator și apare o eroare de adresa invalidă. R-ul face șirul brut, adică spune că șirul nu are caractere speciale. R poate fi ignorat dacă fișierul se află în același director și adresa nu este plasată.

Python3






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

>

>

Aici, fișierul1 este creat ca obiect pentru Fișierul meu1 și fișierul2 ca obiect pentru Fișierul meu2.

json în exemplu json

Închiderea unui fișier

Funcția close() închide fișierul și eliberează spațiul de memorie dobândit de acel fișier. Este folosit în momentul în care fișierul nu mai este necesar sau dacă urmează să fie deschis într-un alt mod de fișier. Sintaxă:

File_object.close()>

Python3




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

>

>

Scrierea la dosar

Există două moduri de a scrie într-un fișier.

    write() : Inserează șirul str1 într-o singură linie în fișierul text.
File_object.write(str1)>
    writelines() : Pentru o listă de elemente șir, fiecare șir este inserat în fișierul text. Folosit pentru a introduce mai multe șiruri simultan.
File_object.writelines(L) for L = [str1, str2, str3]>

Notă: „ ” este tratat ca un caracter special de doi octeți. Exemplu:

Python3




# Python program to demonstrate> # writing to file> # Opening a file> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> s>=> 'Hello '> # Writing a string to file> file1.write(s)> # Writing multiple strings> # at a time> file1.writelines(L)> # Closing file> file1.close()> # Checking if the data is> # written to file or not> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(file1.read())> file1.close()>

>

>

Ieșire:

Hello This is Delhi This is Paris This is London>

Adăugarea la un fișier

Când fișierul este deschis în modul adăugare, mânerul este poziționat la sfârșitul fișierului. Datele care se scriu vor fi introduse la final, după datele existente. Să vedem exemplul de mai jos pentru a clarifica diferența dintre modul de scriere și modul de adăugare.

caracter la int în java

Python3




# 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.read())> 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.read())> print>()> file1.close()>

>

>

Ieșire:

Output of Readlines after appending This is Delhi This is Paris This is London Today Output of Readlines after writing Tomorrow>

Cu declarație

cu declarația în Python este folosită în gestionarea excepțiilor pentru a face codul mai curat și mult mai lizibil. Simplifică gestionarea resurselor comune, cum ar fi fluxurile de fișiere. Spre deosebire de implementările de mai sus, nu este nevoie să apelați file.close() când utilizați instrucțiunea with. Declarația with în sine asigură achiziția și eliberarea adecvată a resurselor. Sintaxă:

with open filename as file:>

Python3




recursiune java

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

>

>

Ieșire:

Hello This is Delhi This is Paris This is London>

Notă: Pentru a afla mai multe despre cu declarație, faceți clic aici.

folosind pentru declarația:

pași:

Pentru a scrie într-un fișier în Python folosind o instrucțiune for, puteți urma acești pași:

Deschideți fișierul folosind funcția open() cu modul adecvat (‘w’ pentru scriere).
Utilizați instrucțiunea for pentru a trece peste datele pe care doriți să le scrieți în fișier.
Utilizați metoda write() a obiectului fișier pentru a scrie datele în fișier.
Închideți fișierul folosind metoda close() a obiectului fișier.

În acest exemplu, fișierul este deschis pentru scriere folosind instrucțiunea with open(‘file.txt’, ‘w’) ca f. Datele de scris sunt stocate într-o listă numită date. Declarația for este folosită pentru a trece în buclă peste fiecare linie de date din listă. Declarația f.write(line + ‘ ’) scrie fiecare linie de date în fișier cu un caracter newline ( ) la sfârșit. În cele din urmă, fișierul este închis automat când se termină blocul with.

Python3




# Open the file for writing> with>open>(>'file.txt'>,>'w'>) as f:> ># Define the data to be written> >data>=> [>'This is the first line'>,>'This is the second line'>,>'This is the third line'>]> ># Use a for loop to write each line of data to the file> >for> line>in> data:> >f.write(line>+> ' '>)> ># Optionally, print the data as it is written to the file> >print>(line)> # The file is automatically closed when the 'with' block ends>

Java comparabil

>

>

Ieșire

This is the first line This is the second line This is the third line>

Abordare:
Codul deschide un fișier numit file.txt în modul de scriere folosind un bloc cu pentru a se asigura că fișierul este închis corect când blocul se termină. Acesta definește o listă de șiruri numite date care reprezintă liniile care urmează să fie scrise în fișier. Codul folosește apoi o buclă for pentru a itera fiecare șir din date și scrie fiecare șir în fișier folosind metoda write(). Codul adaugă un caracter de linie nouă la fiecare șir pentru a se asigura că fiecare șir este scris pe o linie nouă din fișier. Codul imprimă opțional fiecare șir pe măsură ce este scris în fișier.

Complexitatea timpului:
Atât codul original, cât și codul alternativ au o complexitate de timp de O(n), unde n este numărul de linii care trebuie scrise în fișier. Acest lucru se datorează faptului că ambele coduri trebuie să parcurgă fiecare linie din lista de date pentru a o scrie în fișier.

Complexitatea spațiului:
Codul original și codul alternativ au aceeași complexitate spațială a lui O(n), unde n este numărul de linii care trebuie scrise în fișier. Acest lucru se datorează faptului că ambele coduri trebuie să creeze o listă de șiruri care reprezintă liniile care urmează să fie scrise în fișier.