web-dev-qa-db-ja.com

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

ファイルが存在しない場合、open(name,'r+')は失敗します。

ファイルが存在しない場合はファイルを作成するopen(name, 'w')を使用できますが、既存のファイルは切り捨てられます。

あるいは、open(name, 'a')を使用することもできます。ファイルが存在しない場合はファイルが作成されますが、既存のファイルは切り捨てられません。

115
falsetru

次のスクリプトは、ユーザー入力を拡張子として、あらゆる種類のファイルを作成するために使用します。

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

try-exceptブロックを使用する代わりに、他にも使用できます。

ファイルが存在しない、open(name、 'r +')の場合、これは実行されません。

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

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

'w'は存在しない場合はファイルを作成します

6
SriSree

これはうまく機能しますが、代わりに

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

あなたが使うべきです

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

に加えて

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

これは約束を働かせるでしょう:)

1
asdfme123

簡単にするためにos.system関数を使用できます。

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

これにより、システム端末がタスクを実行します。

1
user5449023

あなたはopen(name, 'a')を使うことができます

ただし、filenameを入力するときは、両側に反転カンマを使用します。そうしないと、filenameに".txt"を追加できません。

0
user3725107