¿Error al crear un nuevo archivo de texto con python?

Esta función no funciona y genera un error. ¿Necesito cambiar algún argumento o parámetro?

import sys def write(): print('Creating new text file') name = input('Enter name of text file: ')+'.txt' # Name of text file coerced with +.txt try: file = open(name,'r+') # Trying to create a new file or open one file.close() except: print('Something went wrong! Can\'t tell what?') sys.exit(0) # quit Python write() 

Si el archivo no existe, el archivo open(name,'r+') fallará.

Puede usar open(name, 'w') , que crea el archivo si el archivo no existe, pero truncará el archivo existente.

Alternativamente, puede usar open(name, 'a') ; esto creará el archivo si el archivo no existe, pero no truncará el archivo existente.

en lugar de usar bloques de prueba, excepto, podría usar, si no

esto no se ejecutará si el archivo no existe, está abierto (nombre, ‘r +’)

 if os.path.exists('location\filename.txt'): print "File exists" else: open("location\filename.txt", 'w') 

‘w’ crea un archivo si no es exis

El siguiente script se usará para crear cualquier tipo de archivo, con la entrada del usuario como extensión

 import sys def create(): print("creating new file") name=raw_input ("enter the name of file:") extension=raw_input ("enter extension of file:") try: name=name+"."+extension file=open(name,'a') file.close() except: print("error occured") sys.exit(0) create() 

Esto funciona bien, pero en lugar de

 name = input('Enter name of text file: ')+'.txt' 

Deberías usar

 name = raw_input('Enter name of text file: ')+'.txt' 

junto con

 open(name,'a') or open(name,'w') 
 import sys def write(): print('Creating new text file') name = raw_input('Enter name of text file: ')+'.txt' # Name of text file coerced with +.txt try: file = open(name,'a') # Trying to create a new file or open one file.close() except: print('Something went wrong! Can\'t tell what?') sys.exit(0) # quit Python write() 

esto funcionará promesa 🙂

Puede la función os.system para la simplicidad:

 import os os.system("touch filename.extension") 

Esto invoca el terminal del sistema para realizar la tarea.

Puedes usar open(name, 'a')

Sin embargo, cuando ingresa un nombre de archivo, use comas invertidas en ambos lados, de lo contrario ".txt" no se puede agregar al nombre de archivo