2017-07-26 2 views
-1

Ich bin neu in Python und ein Anfänger bei der Codierung. Ich habe keine spezifische Antwort auf diese Frage gefunden, aber ich bin mir sicher, dass es sehr einfach ist.python .write (raw_input ('>')) funktioniert, aber nächste Befehlszeile sagt "None"

Ich bin in der Lage, eine Datei im 'r +' Modus zu öffnen und schreiben Sie eine Zeichenfolge basierend auf Roheingabe. Es funktioniert gut und die rohe Eingabe, die es in die Datei geschrieben hat, aber die nächste Zeile in der Befehlszeile gibt automatisch das Wort "None" zurück.

Hier ist mein Code

Druck txt.read()

print "Bitte geben Sie einen Text in die Datei hinzuzufügen:"

Druck txt.write (raw_input (> ‚))

print "Danke"

Und hier ist die retu rn

Bitte geben Sie einen Text in die Datei hinzuzufügen:

Hier ist ein Text von 11.26

Keine

Dank

Wie kann ich loswerden von dieser "None" -Ausgabe, und was verursacht es? Ich habe nach einem Rückkehrargument gesucht, aber ich kann nicht herausfinden, was ich tun soll.

Wie kann ich die rohe Eingabezeichenfolge auch in einer neuen Zeile des Dokuments erhalten, in das ich schreibe?

Danke!

+0

Danke Ihnen allen für die Unterstützung dieses n00b zu erziehen. Ich verspreche, in Sachleistungen zurückzukehren, wenn ich ein fortgeschrittener Programmierer werde. Bis dahin werde ich diese Ressource nach zuvor beantworteten Fragen durchsuchen und erneut nach etwas fragen, das ich nicht finden kann. Prost – Hanzy

Antwort

0

Wenn Sie txt.write(raw_input(">")) tun, schreibt Ihr Code die Eingabe in die Datei korrekt. Allerdings funktioniert die Funktion nicht return irgendetwas - es muss nicht. Es ist eine dieser Funktionen, die nur für sich selbst sorgt.

Um es loszuwerden, drucken Sie es einfach nicht!

+0

Danke! Also kann ich einfach txt.write schreiben (raw_input ('>')) und das reicht aus? – Hanzy

+0

@Hanzy Richtig! – TerryA

+0

Vielen Dank! Nur um zu erweitern, wie kann ich die rohe Eingabezeichenfolge in einer neuen Zeile der Datei erhalten, in die ich schreibe? – Hanzy

0

entfernen print von print txt.write(raw_input('> ')). Der Grund, warum es None druckt, ist, weil das eingebaute file.write() nichts zurückgibt, schreibt es nur in eine Datei. wenn Sie die Eingabe sehen möchten, die vom Benutzer eingegeben wird, dies tun:

text=raw_input('Enter some text to add to the file > ') 
print text 
txt.write(text) 
print 'Thanks' 
1

Kurze Antwort - entfernen print von 3. Zeile.

Ihre txt.write(raw_input('>')) schreibt in eine Datei und gibt nichts zurück, was durch None dargestellt wird.

Wenn Sie Ihre eigene Funktion ohne Rückkehr schreiben würde gleiche passieren:

def test(): 
    print 'None appears below me' 

print test() 
#None appears below me 
#None 

In diesem Fall brauchen Sie nur zu nennen, und es wird Druck:

test() 
#None appears below me 

Das Gleiche gilt für write() Verfahren .

Für Newline Verwendung txt.write(raw_input('>') + '\n')

0

Python 2.7 keine Rückkehr

Hilfe (f.write) Hilfe auf integrierte Funktion schreiben:

schreiben (...) write (str) -> Keine. Schreibe Zeichenfolge str in Datei.

Note that due to buffering, flush() or close() may be needed before 
the file on disk reflects the data written. 

python3.5

Hilfe (f.write) Hilfe auf integrierte Funktion schreiben:

schreiben (Text, /) -Methode von _io.TextIOWrapper Instanz schreiben Zeichenfolge zu streamen . Gibt die Anzahl der geschriebenen Zeichen zurück (die immer gleich der Länge der Zeichenfolge ist).