問題のコメントで述べたように、実際code
の値が既に
[--]
{start}
\ok"waw"
the-end
あなたが参照できる
あるので、改行が続く\\
の文字列リテラルは、その改行をエスケープすること、ですthis Pythonの文字列リテラルに関するいくつかの情報があります。
ok
と"waw"
の間に改行がありません。この問題は実際にはあなたのコードではなく、サンプル入力にあります。ユーザーが「コード」にアクセスすることができないと言います。ユーザーがプログラムを変更して入力するとは限りません。入力を取る方法の私の提案は、ユーザーに別々のファイルを提供させることです。このようにして、文字列は文字列として解釈され、それだけで解釈され、Pythonはエスケープを試みません。わかりやすくするために、私はファイル名をハードコードしましたが、最終的にこれを柔軟にする(実際にはstdinから入力して、ユーザーがファイル名を提供できるようにするなど)良い考えです。
ファイルinput.txt
は含まれています
[--]
{start}
\ok\
"waw"
the-end
コード:
import sys
with open("input.txt", "r") as in_file:
for line in in_file:
sys.stdout.write(line)
予想したように、コードが
[--]
{start}
\ok\
"waw"
the-end
をouputsおそらくあなたはラインでいくつかのより多くをしたいです、これは単に入力を複製したものです。
'\ n'は改行に使用されますが、okの後に '\'が出現すると、エスケープされ、改行が見付かりません。 – 0decimal0
入力を与えるために実際のスクリプトを変更するのですか? –
'\ n'の代わりに' os.linesep'を使用してください – 0decimal0