Mejor respuesta
¿Cómo borras un archivo de texto en Python?
En la mayoría de los idiomas, debería ser suficiente abrir el archivo para escribir y luego cerrarlo. El modismo que usaría es:
with open(theFile, “w”) as fp:
pass
Esto debería dejar un archivo de longitud 0.
La pregunta es, ¿por qué querría hacer esto? Si desea que el archivo desaparezca, elimínelo (consulte os.remove). Si tiene la intención de sobrescribirlo, no es necesario que lo borre primero. Ábralo para escribir y escriba los nuevos contenidos.
Respuesta
En versiones antiguas de Python, la distinción entre archivos de texto y binarios tenía que ver con cómo Python trataba los separadores de línea (en su mayoría solo relevantes al manejo de archivos de texto de MS-DOS / Windows (usando pares de caracteres CR / LF para la terminación de línea) y archivos de texto del antiguo sistema Macintosh (pre-MacOS X) (que usaban CR, retorno de carro (\ r) o ASCII 0x0D) en en lugar del LF (salto de línea, \ n, ASCII 0x0A, que se usa en Unix, Linux y MacOS X).
Esto normalmente era detectado automáticamente por los intérpretes de Python2, y solo ocasionalmente tenía que ser montado. Pero todos los archivos podrían tratarse como simples flujos de bytes (que eran intercambiables con caracteres ASCII de 8 bits) en Python 2 y versiones anteriores. El indicador / modo “b” en open () para tratar archivos como binarios se trataba solo de finales de línea.
Con Python 3 la historia es más complicada. Pero la idea simple es que los archivos de texto son los predeterminados y se tratan como algunos codificación de Unicode (UTF-8 o US-ASCII por ejemplo). Para manejar archivos como binarios, simplemente agregue la bandera «b» a su argumento de modo mientras abre el archivo. Pero ahora todas las operaciones en ese archivo implican objetos de bytes en lugar de cadenas. Por lo tanto, se lee return bytes y los datos deben transmitirse como bytes para las llamadas al .write () método (y así sucesivamente).
Tenga en cuenta estos ejemplos:
# 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
El modo también puede ser w o w + para archivos de texto grabables (con lectura / escritura opcional agregando +) o a o a + solo para agregar . El indicador b se puede agregar a cualquiera de los de bytes (binarios) en lugar de texto.
Nota: puede abrir archivos de texto en modo binario. Es solo que Python los tratará como flujos de bytes en lugar de texto y tendrá que llamar explícitamente a funciones de conversión de cadenas en el contenido (con argumentos de codificación explícitos) para usarlas como cadenas.
Aquí hay una guía para más detalles: Tutorial de cadenas de Python 3.X por Mark Lutz