Ich habe keinen Zugriff auf den Code, wie es vom Benutzer eingegeben wird. das '\' am Ende von \ ok \ gib mir das falsche Ergebnis. Wie kann ich() korrekt teilen?'' am Ende der Zeile oder Zeile geben split() Fehler
Antwort
Das Problem ist, wie in den Kommentaren erwähnt, dass \\
in ein Zeichenfolgenliteral durch eine neue Zeile folgt, dass Newline zu entkommen, wird der Wert von code
so in der Tat bereits
[--]
{start}
\ok"waw"
the-end
ist Sie verweisen können this für einige weitere Informationen über String-Literale in Python.
ohne Newline zwischen ok
und "waw"
. Das Problem liegt eigentlich gar nicht bei Ihrem Code, sondern bei Ihrer Beispieleingabe. Sie sagen, Sie haben keinen Zugriff auf den "Code", da der Benutzer sie ändern wird - ich kann nur annehmen, dass Sie nicht meinen, dass der Benutzer das Programm ändert, um Eingaben zu geben. Mein Vorschlag für die Eingabe ist, dass der Benutzer eine separate Datei bereitstellt. Auf diese Weise wird die Zeichenfolge als Zeichenstrom interpretiert und das allein, und Python versucht nicht, zu entkommen. Der Einfachheit halber habe ich den Dateinamen fest codiert, aber es wäre wahrscheinlich auch eine gute Idee, dies flexibel zu machen (nehmen Sie die Eingabe von stdin, lassen Sie den Benutzer den Dateinamen, etc ..).
Die Datei input.txt
enthält:
[--]
{start}
\ok\
"waw"
the-end
Der Code:
import sys
with open("input.txt", "r") as in_file:
for line in in_file:
sys.stdout.write(line)
Wie erwartet, wird der Code ouputs
[--]
{start}
\ok\
"waw"
the-end
Vermutlich einige mehr mit den Linien tun wollen, da dies nur die Eingabe repliziert.
- 1. am Ende der Zeile hinzufügen mit sed
- 2. Vagrant ssh: Müll am Ende der Zeile
- 3. sed Zeile am Ende der Datei hinzufügen
- 4. Nicht brechender Platz am Ende der Zeile
- 5. Dollarzeichen am Ende jeder Zeile
- 6. Doxygen /// Kommentare am Ende der Zeile
- 7. Wählen Sie Ziffern am Ende der Zeile
- 8. Android: kein Fehler, aber die Nulloption am Ende der Zeile
- 9. Warum muss das Pluszeichen am Ende der Zeile statt am Anfang der nächsten Zeile stehen?
- 10. Wie int am Ende einer Zeile
- 11. Einfügen am Ende einer Zeile in VIM
- 12. PHP FWRITE leere Zeile am Ende einfügen
- 13. Zeile lesen und am Ende etwas anhängen
- 14. bcp anhängen eine Zeile am Ende der Datei
- 15. vim Ende der Zeile
- 16. Portable Ende der Zeile
- 17. Vorzeitiges Ende der Zeile Weka Fehler
- 18. PHP: Ignoriere und entferne leere Zeile am Ende der Liste
- 19. Python Split ('\ n') bricht eine Zeile in der Mitte statt nach dem Ende der Zeile
- 20. ifstream, Ende der Zeile und zur nächsten Zeile wechseln?
- 21. Codemirror - Überprüfen Sie, ob Cursor am Ende der Zeile ist
- 22. NSKernAttributeName-Speicherplatz am Ende der Zeile in einem NSAttributedString
- 23. Gedit fügt Zeile am Ende der Datei hinzu
- 24. Entfernen Sie Junk-Zeichen am Ende der Zeile in Unix
- 25. Pin Tablix Zeile am Ende der Seite auf SSRS-Berichte
- 26. Summe 2 Zählungen aus derselben Tabelle am Ende der Zeile
- 27. Eine Zeile am Ende der Gridview programmatisch in C# hinzufügen?
- 28. Εxtract Daten zwischen paratheses und am Ende der Zeile anhängen
- 29. Wie Zeile am Ende der Datei mit Datei.Anhängen in C#
- 30. CSV Writer, Hinzufügen von Listenelementen am Ende der Zeile
'\ n' wird für Newline verwendet, aber wenn '\' nach OK gefunden wird, wird es maskiert und Newline wird verpasst – 0decimal0
Meinen Sie, der Benutzer ändert Ihr aktuelles Skript, um Eingaben zu geben? –
Verwenden Sie "os.linesep" anstelle von "\ n" – 0decimal0