In C++ können wir mehrere Zeilen eingeben, indem wir in der Funktion getline() ein eigenes Begrenzungszeichen angeben. In Python ist das nicht möglich !! Es hat nur die Methoden raw_input() und sys.stdin.readline(), die gelesen werden, bis ich Enter drücke. Gibt es eine Möglichkeit, dies anzupassen, so dass ich ein eigenes Trennzeichen angeben kann?Python-Äquivalent von C++ getline()
Antwort
Möchten Sie dennoch die Eingabetaste drücken, um mehrere Zeilen zu erstellen? Wie beenden Sie die Eingabe? Oder möchten Sie mehrere Zeilen in einer Zeile angeben?
Wenn das ehemalige, versuchen Looping raw_input(), bis etwas geschrieben ist, dass es zu stoppen sagt:
lines = []
while True:
user_input = raw_input()
if user_input.strip() == "": # empty line signals stop
break
lines.append(user_input)
oder mehrere Linien auf einer einzelnen Zeile mit einem Trennzeichen angeben:
lines = raw_input().split(";")
Sie können versuchen, diese Methode ein wenig zu ändern, um sie zu verwenden und in Ihrem Programm zu verwenden.
Zunächst importieren Sie die linecache Modul:
import linecache
Das linecache Modul Sie jede Zeile aus einer beliebigen Datei zugreifen können. Von den drei Methoden, die Sie am häufigsten verwenden, ist getline. Die Syntax für getline ist wie folgt:
linecache.getline('filename', line_number)
Wenn Sie eine Datei mit dem Namen ‚myfile.txt‘ und möchten Leitung 138 aus, es lesen, getline Sie so mit Leichtigkeit tun können.
Dann können Sie einfach recovered_line drucken oder die Daten der Zeile 138 anderweitig manipulieren, ohne die Datei selbst zu bearbeiten.
Danke für ur Vorschlag .. :-) –
Sie müssen eine solche Funktion selbst implementieren. Zum Beispiel:
def getline(stream, delimiter="\n"):
def _gen():
while 1:
line = stream.readline()
if delimiter in line:
yield line[0:line.index(delimiter)]
break
else:
yield line
return "".join(_gen())
import sys
getline(sys.stdin, ".")
dies auch good..will zu sehen ist, welches ich endlich .... –
- 1. C++ getline() erfordert keine Namespace-Deklaration
- 2. getline lässt mich nicht tippen, C++
- 3. C++ - Schnellausgabe auf getline (cin, string)
- 4. Lesen einer Textdatei ohne getline() in C++
- 5. C++ - Probleme mit getline() und einer Schleife
- 6. C++ erstes Zeichen druckt nicht mit getline
- 7. getline() trägt '\ n' von csv
- 8. Warum kann ich getline ohne std :: getline aufrufen?
- 9. cin und getline überspringen Eingabe
- 10. Benötigen mit getline helfen()
- 11. getline und file handling
- 12. Std :: Getline entfernt Leerzeichen?
- 13. Verwenden von getline auf einer Zeichenfolge
- 14. Fehler bei std :: getline
- 15. C++: cin mit Leerzeichen an Strings ohne getline-Funktion
- 16. Kompilieren von C++ - Code mit gnu/c getline() auf Mac OSX?
- 17. Ist das ein Fehler mit getline() oder mache ich etwas falsch? Richtige Weise, getline() zu verwenden?
- 18. C++. Txt lesen Probleme. getline lesen full file
- 19. do get() und getline() in C++ Newline anders behandeln?
- 20. Getline setzt Programm auf Pause
- 21. C-Programmierung: Unerwartete Ergebnisse von strcmp nach der Verwendung von getline
- 22. So beenden Sie mit getline()
- 23. Warum ist getline so inkonsistent?
- 24. Verwenden von getline in loop, Speichern in einem Array
- 25. Wie mache ich "getline" von einer std :: string?
- 26. Warum wird getline (...) auf dem Bildschirm gedruckt?
- 27. Wie zu ermitteln, ob es EOF bei Verwendung von getline() in C++ ist?
- 28. Wie eine (benutzerinteraktiv) Standardzeichenfolge für getLine haben?
- 29. Code überspringt die getline-Anweisung. Ich versuchte beide getline und cin ohne Erfolg
- 30. Dynamische Array-Größe und Absturz bei getline();
dies paßt meine Sache ganz gut .. :-) –