ほぼ同一の 2 つのテキスト ファイル (MacVim で作成されたプレーン テキスト) がある場合、それらを Python で変数に読み込むと、異なる結果が得られます。これがなぜなのか、どのようにして一貫した動作を生成できるのかを知りたいです。
たとえば、f1.txt は次のようになります。
This isn't a great example, but it works.
f2.txt は次のようになります。
This isn't a great example, but it wasn't meant to be.
"But doesn't it demonstrate the problem?," she said.
これらのファイルを読み込むときは、次のようなものを使用します。
f = open("f1.txt","r")
x = f.read()
コンソールで変数を見ると、次のようになります。f1.txt:
>>> x
"This isn't a great example, but it works.\n\n"
f2.txt:
>>> y
'This isn\'t a great example, but it wasn\'t meant to be. \n"But doesn\'t it demonstrate the problem?," she said.\n\n'
言い換えれば、f1 はエスケープされた改行だけで入りますが、f2 も一重引用符がエスケープされています。
repr() は何が起こっているかを示します。最初に f1 の場合:
>>> repr(x)
'"This isn\'t a great example, but it works.\\n\\n"'
そしてf2:
>>> repr(y)
'\'This isn\\\'t a great example, but it wasn\\\'t meant to be. \\n"But doesn\\\'t it demonstrate the problem?," she said.\\n\\n\''
この種の行動は私を夢中にさせます。何が起こっているのか、それを一貫させるにはどうすればよいですか? 問題がある場合は、プレーンテキストで読み取り、操作し、最終的には適切にエスケープされた文字が表示されるように (Javascript コードに貼り付けるために) 書き出そうとしています。