0

編集:この質問はよく考えられていませんでした。私の問題は、実際には、光沢のあるテキストを表示しようとするだけで、保存するのではありません。時々、あなたははっきりと考えていません。

R の文字ベクトルに読み込みたい結果を stdin に出力する python スクリプトがあります。これは通常system(...,intern=TRUE)、 を使用してうまく機能しますが、この場合、エスケープ文字が追加されていると機能しません (スクリプトが返すHTML とエスケープ文字を追加すると、不正な形式の HTML になる可能性があります)。Pythonからの出力を一時ファイルに保存し、そのファイルをRに読み込むことでこれを回避できますが、考えられない簡単な修正がある場合は避けたいと思います。これが私が意味することの例です:

> #f.py is a text file containing
>
> # #!/usr/bin/python
> # 
> # html = """
> #     <HTML>
> #             <p>some content</p>
> #             <p> some more content </p>
> #         </HTML>"""
> # 
> # print html
> 
> #the /t, among other escapes, break the html
> v1 <- paste(system("./f.py",intern=TRUE),collapse="")
> v1
[1] "\t\t<HTML>\t\t\t<p>some content</p>\t\t  \t<p> some more content </p>\t\t</HTML>"
> 
> #this is what I want... but it needs to be saved into an object
> system("./f.py")

        <HTML>
            <p>some content</p>
            <p> some more content </p>
        </HTML>
> #or equivalently
> cat(v1)
        <HTML>          <p>some content</p>         <p> some more content </p>      </HTML>
> 
> #I thought capture.output() would work, but the string still has the escaped characters
> v2 <- capture.output(cat(v1))
> v2
[1] "\t\t<HTML>\t\t\t<p>some content</p>\t\t  \t<p> some more content </p>\t\t</HTML>"
4

1 に答える 1