GNU/Linux >> Tutoriales Linux >  >> Linux

open() en Python no crea un archivo si no existe

Deberías usar open con el w+ modo:

file = open('myfile.dat', 'w+')

La ventaja del siguiente enfoque es que el archivo está cerrado correctamente al final del bloque, incluso si se genera una excepción en el camino. Es equivalente a try-finally , pero mucho más corto.

with open("file.dat","a+") as f:
    f.write(...)
    ...

a+ Abre un archivo para agregar y leer. El puntero de archivo se encuentra al final del archivo, si el archivo existe. El archivo se abre en el modo de adición. Si el archivo no existe, crea un nuevo archivo para lectura y escritura. -Modos de archivo Python

El método seek() establece la posición actual del archivo.

f.seek(pos [, (0|1|2)])
pos .. position of the r/w pointer
[] .. optionally
() .. one of ->
  0 .. absolute position
  1 .. relative position to current
  2 .. relative position from end

Solo se permiten caracteres "rwab+"; debe haber exactamente uno de "rwa"; consulte la pregunta de desbordamiento de pila Detalle de los modos de archivo de Python .


Una buena práctica es usar lo siguiente:

import os

writepath = 'some/path/to/file.txt'

mode = 'a' if os.path.exists(writepath) else 'w'
with open(writepath, mode) as f:
    f.write('Hello, world!\n')

Linux
  1. piwik:no se pudo abrir el archivo de entrada:./console

  2. ¿Qué hace Exec 3?

  3. Crear un archivo de intercambio de Linux

  4. archivo:comando no encontrado

  5. Agregar una línea a un archivo solo si aún no existe

Manejo de archivos en Python:crear, abrir, agregar, leer, escribir

Cómo crear un archivo en Linux

Cómo crear un archivo Tar Gz

Cómo descomprimir (abrir) un archivo Gz

El comando sed de Linux no cambia el archivo de destino

¿Por qué wget'ing una imagen me da un archivo, no una imagen?