Jak vymazat textový soubor v Pythonu


Nejlepší odpověď

Jak vymazat textový soubor v Pythonu?

Ve většině jazyků by mělo stačit otevřít soubor pro zápis a poté jej zavřít. Použitý idiom je:

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

pass

Toto by mělo po sobě zanechat soubor o délce 0.

Otázkou je, proč to chcete udělat? Pokud chcete soubor odstranit, odstraňte jej (viz os.remove). Pokud to chcete přepsat, nemusíte to nejprve mazat. Otevřete jej pro zápis a zapište nový obsah.

Odpověď

Ve starých verzích Pythonu měl rozdíl mezi textovými a binárními soubory co do činění s tím, jak Python zacházel s oddělovači řádků (většinou pouze relevantní zpracování textových souborů v systému MS-DOS / Windows (použití párů znaků CR / LF pro ukončení řádku) a staré textové soubory systému Macintosh System (starší než MacOS X) (které používaly CR, carriage return (\ r) nebo ASCII 0x0D) v místo LF (line feed, \ n, ASCII 0x0A, který se používá v Unixu, Linuxu a MacOS X).

Toto bylo obvykle automaticky detekováno tlumočníky Pythonu2 a jen občas muselo být překročeno ridden. Všechny soubory však mohly být považovány za jednoduché toky bytů (které byly zaměnitelné s 8bitovými znaky ASCII) v Pythonu 2 a dřívějších. Příznak / režim „b“ v open () pro zacházení se soubory jako binárními byl jen o zakončení řádků.

S Pythonem 3 je příběh komplikovanější. Jednoduchý je však to, že textové soubory jsou výchozí a jsou považovány za kódování Unicode (například UTF-8 nebo US-ASCII). Ke zpracování souborů jako binárních stačí při otevírání souboru přidat do argumentu režimu příznak „b“. Nyní ale všechny operace s tímto souborem obsahují bajtů objekty spíše než řetězce. Čte tedy návratové bajtů a data pro volání iv id musí být vhozena jako bajtů = „f1c82958de“>

.write () metoda (atd.).

Všimněte si těchto příkladů:

# 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

Režim může být také w nebo w + pro zapisovatelné textové soubory (s volitelným čtením / zápisem přidáním +) nebo a nebo a + pouze pro připojení . Příznak b lze k libovolnému z nich přidat spíše pro bajty (binární) než pro text.

Poznámka: textové soubory můžete otevírat v binární režim. Je to jen to, že Python s nimi bude zacházet jako s bajtovými streamy spíše než s textem a budete muset explicitně volat funkce převodu řetězců na obsah (s explicitními argumenty kódování), abyste je mohli použít jako řetězce.

Zde je průvodce pro další podrobnosti: Výukový program pro Python 3.X Strings od Marka Lutze

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *