Ошибка при создании нового текстового файла с помощью python?

Эта функция не работает и вызывает ошибку. Нужно ли мне изменять какие-либо аргументы или параметры?

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

Ответ 1

Если файл не существует, open(name,'r+') завершится с ошибкой.

Вы можете использовать open(name, 'w'), который создает файл, если файл не существует, но он обрезает существующий файл.

В качестве альтернативы вы можете использовать open(name, 'a'); это создаст файл, если файл не существует, но не будет обрезать существующий файл.

Ответ 2

после script будет использоваться для создания любого типа файла, с пользовательским вводом как расширение

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

Ответ 3

вместо использования блоков try-except, вы можете использовать, если else

это не будет выполняться, если файл не существует,   открытый (имя, 'г +')

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

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

'w' создает файл, если его не-exis

Ответ 4

Это работает отлично, но вместо

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

вы должны использовать

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

вместе с

open(name,'a') or open(name,'w')

Ответ 5

Вы можете использовать функцию os.system для простоты:

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

Это вызывает системный терминал для выполнения задачи.

Ответ 6

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

это сработает.)

Ответ 7

Вы можете использовать open(name, 'a')

Однако, когда вы вводите имя файла, используйте обратные запятые с обеих сторон, иначе ".txt" не может быть добавлено в имя файла