linux ejercicios de - open () en Python no crea un archivo si no existe





8 Answers

La ventaja del siguiente enfoque es que el archivo está correctamente cerrado al final del bloque, incluso si se presenta 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 añadir y leer. El puntero del archivo se encuentra al final del archivo si el archivo existe. El archivo se abre en el modo de añadir. Si el archivo no existe, crea un nuevo archivo para leer y escribir. - Modos de archivo de 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

Sólo se permiten los caracteres "rwab +"; debe haber exactamente uno de "rwa"; consulte la pregunta sobre Desbordamiento de pila en detalles sobre los modos de archivo Python .

archivos leer una

¿Cuál es la mejor manera de abrir un archivo como lectura / escritura si existe, o si no existe, créelo y ábralo como lectura / escritura? Por lo que leí, file = open('myfile.dat', 'rw') debería hacer esto, ¿verdad?

No está funcionando para mí (Python 2.6.2) y me pregunto si es un problema de versión, o si se supone que no funciona así o qué.

La conclusión es que solo necesito una solución para el problema. Tengo curiosidad por las otras cosas, pero todo lo que necesito es una buena forma de hacer la parte inicial.

ACTUALIZACIÓN: el directorio adjunto se puede escribir por usuario y grupo, no por otro (estoy en un sistema Linux ... en otras palabras, los permisos 775), y el error exacto fue:

IOError: no existe tal archivo o directorio.




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')



Mi respuesta:

file_path = 'myfile.dat'
try:
    fp = open(file_path)
except IOError:
    # If not exists, create the file
    fp = open(file_path, 'w+')



Creo que es r + , no rw . Solo soy un titular, y eso es lo que he visto en la documentación.




Ponga w + para escribir el archivo, truncando si existe, r + para leer el archivo, creando uno si no existe pero sin escribir (y devolviendo el valor nulo) o a + para crear un nuevo archivo o agregarlo a uno existente.




Utilizar:

import os

f_loc = r"C:\Users\Russell\Desktop\ip_addr.txt"

if not os.path.exists(f_loc):
    open(f_loc, 'w').close()

with open(f_loc) as f:
    #Do stuff

Asegúrese de cerrar los archivos después de abrirlos. El administrador de contexto lo hará por ti.




'''
w  write mode
r  read mode
a  append mode

w+  create file if it doesn't exist and open it in write mode
r+  create file if it doesn't exist and open it in read mode
a+  create file if it doesn't exist and open it in append mode
'''

ejemplo:

file_name = 'my_file.txt'
f = open(file_name, 'w+')  # open file in write mode
f.write('python rules')
f.close()

Espero que esto ayude. [FYI estoy usando la versión 3.6.2 de Python




import os, platform
os.chdir('c:\\Users\\MS\\Desktop')

try :
    file = open("Learn Python.txt","a")
    print('this file is exist')
except:
    print('this file is not exist')
file.write('\n''Hello Ashok')

fhead = open('Learn Python.txt')

for line in fhead:

    words = line.split()
print(words)





Related