2017-04-10 1 views
4

ich, dass vor kurzem bemerkt, wenn ich den folgenden Code haben:Warum gibt Python automatisch zählt Zeichen, wenn Write-Datei

File = "/dir/to/file" 
Content = "abcdefg" 

with open(File,"a") as f: 
    f.write(Content) 

I „7“ als Ausgang und verfügt die Anzahl der Zeichen in der Variablen „Inhalt ist ". Ich kann mich nicht erinnern, dies gesehen zu haben (ich habe vorher ipython notebook benutzt, aber dieses Mal habe ich es in der Python-Umgebung in der Shell gemacht) und frage mich, ob ich etwas falsch gemacht habe. Meine Python-Version: Python 3.3.3. Danke für Ihre Hilfe.

+2

Dies ist ein normales Verhalten –

+2

[ 'f.write (string)' schreibt den Inhalt von 'string' in die Datei geschrieben, um die Anzahl der Zeichen zurück.] (Https://docs.python.org/3/tutorial /inputoutput.html#reading-and-writing-files) – CoryKramer

+0

@PatrickHaugh was meinst du mit normalem Verhalten !? Coz, die Zeichenfolge wird in eine Variable "Content" gespeichert und diese wird in die Datei geschrieben, wenn ich die Frage richtig gestellt habe. Kannst du bitte ausführlicher sein? –

Antwort

3

Wie immer ist dieses Verhalten für die meisten .write() Implementierungen normal, siehe auch I/O Base Classes.

Zum Beispiel io.RawIOBase.write

schreiben die gegebene Byte-ähnliches Objekt, b, an dem darunterliegenden Rohstrom, und geben die Anzahl der Bytes geschrieben.

oder io.TextIOBase.write

Schreiben Sie den String s in den Stream und geben die Anzahl der geschriebenen Zeichen.

Welche IO -Klasse verwendet wird, hängt davon ab, (das Betriebssystem und) die zu open gegebenen Parametern. Aber soweit ich das sehen kann, geben alle von ihnen eine Art von geschriebenen "Zeichen" oder "Bytes" zurück.

+0

Vielen Dank @MSeifert. Ich habe Ipython Notebook verwendet und vor kurzem umgeschaltet, um es direkt in Shell-Befehl zu tun. Im Ipython-Notizbuch habe ich noch nie so ein Verhalten gesehen lol. – Helene

Verwandte Themen