Diese Funktion funktioniert nicht und löst einen Fehler aus. Muss ich Argumente oder Parameter ändern?
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()
python
file
python-3.x
file-io
Bython
quelle
quelle
<_io.TextIOWrapper name='hello' mode='a+' encoding='cp1252'>
Antworten:
Wenn die Datei nicht vorhanden ist, schlägt dies
open(name,'r+')
fehl.Sie können verwenden
open(name, 'w')
, wodurch die Datei erstellt wird, wenn die Datei nicht vorhanden ist, die vorhandene Datei jedoch abgeschnitten wird.Alternativ können Sie verwenden
open(name, 'a')
; Dadurch wird die Datei erstellt, wenn die Datei nicht vorhanden ist, die vorhandene Datei jedoch nicht abgeschnitten.quelle
'x'
geändert wird, kann anstelle von'w'
,'a'
.Anstatt Try-Except-Blöcke zu verwenden, können Sie auch andere Blöcke verwenden
Dies wird nicht ausgeführt, wenn die Datei nicht vorhanden und geöffnet ist (Name, 'r +').
if os.path.exists('location\filename.txt'): print "File exists" else: open("location\filename.txt", 'w')
'w' erstellt eine Datei, wenn sie nicht vorhanden ist
quelle
Das folgende Skript wird verwendet, um jede Art von Datei mit Benutzereingaben als Erweiterung zu erstellen
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()
quelle
Das funktioniert gut, aber stattdessen
name = input('Enter name of text file: ')+'.txt'
du solltest benutzen
name = raw_input('Enter name of text file: ')+'.txt'
zusammen mit
open(name,'a') or open(name,'w')
quelle
python-3.x
in denenraw_input
nicht verfügbar ist.python-3.x
wurde nach dieser Antwort hinzugefügtimport 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()
das wird vielversprechend funktionieren :)
quelle
name=input()
zuname=raw_input()
. Das ist natürlich veraltet.Sie können der Einfachheit halber die Funktion os.system verwenden:
import os os.system("touch filename.extension")
Dies ruft das Systemterminal auf, um die Aufgabe auszuführen.
quelle
Sie können verwenden
open(name, 'a')
Wenn Sie jedoch einen Dateinamen eingeben, verwenden Sie auf beiden Seiten Anführungszeichen, da
".txt"
dies sonst nicht zum Dateinamen hinzugefügt werden kannquelle