Cum se șterge un fișier text în Python


Cel mai bun răspuns

Cum ștergeți un fișier text în Python?

În majoritatea limbilor, ar trebui să fie suficient să deschideți fișierul pentru scriere și apoi să îl închideți. Idioma pe care aș folosi-o este:

with open(theFile, “w”) as fp:

pass

Acest lucru ar trebui să lase în urmă un fișier de 0.

Întrebarea este, de ce doriți să faceți acest lucru? Dacă doriți ca fișierul să dispară, ștergeți-l (consultați os.remove). Dacă intenționați să-l suprascrieți, nu trebuie să îl ștergeți mai întâi. Deschideți-l pentru scriere și scrieți conținutul nou.

Răspuns

În versiunile vechi ale Python, distincția dintre fișierele text și binare avea legătură cu modul în care Python a tratat separatoarele de linie (în mare parte relevante doar la manipularea MS-DOS / Windows a fișierelor text (folosind perechi de caractere CR / LF pentru terminarea liniei) și a fișierelor text vechi ale sistemului Macintosh (pre-MacOS X) (care foloseau CR, retur de transport (\ r) sau ASCII 0x0D) în în loc de LF (linie de alimentare, \ n, ASCII 0x0A, care este utilizată în Unix, Linux și MacOS X).

În mod normal, aceasta a fost detectată automat de către interpreții Python2 și a trebuit să fie doar ocazional suprasolicitată dar toate fișierele ar putea fi tratate ca fluxuri simple de octeți (care erau interschimbabile cu caractere ASCII pe 8 biți) în Python 2 și versiuni anterioare. Steagul / modul „b” de pe open () pentru tratarea fișierelor ca binare a fost doar despre finaluri de linie.

Cu Python 3 povestea este mai complicată. Dar simpla este că fișierele text sunt implicite și sunt tratate ca unele codificarea Unicode (UTF-8 sau US-ASCII de exemplu). Pentru a gestiona fișierele ca binare, trebuie doar să adăugați semnalizatorul „b” la argumentul de mod în timp ce deschideți fișierul. Dar acum toate operațiunile din fișierul respectiv presupun octeți mai degrabă decât obiecte. Deci, citirile returnează octeți și datele trebuie transmise ca octeți pentru apelurile către .write () metoda (și așa mai departe).

Rețineți aceste exemple:

# Default:

textfile = open(‘somefile.txt’)

## read-only, text, encoding depends on platform by likely UTF-8 or US-ASCII

# Binary:

data = open(‘somedata.bin’, ‘rb’)

## read-only, bytes() data

Modul poate fi și w sau w + pentru fișierele text care pot fi scrise (cu citire / scriere opțională prin adăugarea +) sau a sau a + numai pentru anexare . Steagul b poate fi adăugat la oricare dintre cele pentru octeți (binar) și nu pentru text.

Notă: puteți deschide fișiere text în modul binar. Doar că Python le va trata mai degrabă ca fluxuri de octeți decât text și va trebui să apelați în mod explicit funcțiile de conversie a șirurilor din conținut (cu argumente de codificare explicite) pentru a le utiliza ca șiruri.

Iată un ghid pentru mai multe detalii: Tutorial Python 3.X Strings de Mark Lutz

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *