web-dev-qa-db-fra.com

Erreur lors de la création d'un nouveau fichier texte avec Python?

Cette fonction ne fonctionne pas et génère une erreur. Dois-je modifier des arguments ou des paramètres?

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()
69
Bython

Si le fichier n'existe pas, open(name,'r+') échouera.

Vous pouvez utiliser open(name, 'w'), qui crée le fichier si celui-ci n'existe pas, mais tronque le fichier existant.

Alternativement, vous pouvez utiliser open(name, 'a'); cela créera le fichier si le fichier n'existe pas, mais ne tronquera pas le fichier existant.

115
falsetru

le script suivant utilisera pour créer tout type de fichier, avec une entrée utilisateur comme extension

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()
6
prathima

au lieu d'utiliser des blocs try-except, vous pouvez utiliser, sinon

cela ne fonctionnera pas si le fichier est inexistant, ouvrez (nom, 'r +')

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

else:
   open("location\filename.txt", 'w')

'w' crée un fichier si sa non-exis

6
SriSree

Cela fonctionne très bien, mais au lieu de

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

tu devrais utiliser

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

de même que

open(name,'a') or open(name,'w')
3
Ivan
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()

cela fonctionnera promis :)

1
mai_way

Vous pouvez utiliser os.system pour plus de simplicité:

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

Ceci appelle le terminal système pour accomplir la tâche.

1
user5449023

Vous pouvez utiliser open(name, 'a')

Cependant, lorsque vous entrez le nom du fichier, utilisez des guillemets, des deux côtés, sinon ".txt" ne peut pas être ajouté au nom du fichier.

0
user3725107