0

次の論理行をファイルから pythonに読み込みたいと思います。ここで、論理は「python の構文に従って」という意味です。

ファイルから一連のステートメントを読み取る小さなコマンドを作成し、ステートメントを python シェルに入力した場合に得られるものをプロンプトと戻り値とともに出力します。簡単です -- 各行を読んでから評価します。複数行の文字列に到達するまで、これは問題なく機能します。

私は自分自身の語彙分析を避けようとしています。

簡単な例として、次を含むファイルがあるとします

2 + 2

印刷したい

>>> 2 + 2
4

そして、私がファイルを持っている場合

"""Hello
World"""

印刷したい

>>>> """Hello
...World"""
'Hello\nWorld'

これらの最初のものは些細なことです - 行を読んで、評価して、印刷してください。しかし、コメント行には特別なサポートが必要です。そして今、三重引用符。等々。

4

2 に答える 2

0

わかりました、レジは正しい考えを持っていました。これが仕事をする私の簡単なコードです。

#!/usr/bin/python

import sys
import code

class Shell(code.InteractiveConsole):
    def write(data):
        print(data)

cons = Shell()

file_contents = sys.stdin

prompt = ">>> " 

for line in file_contents:
    print prompt + line,
    if cons.push(line.strip()):
        prompt = "... "
    else:
        prompt = ">>> "
于 2013-09-17T09:21:15.690 に答える