2014-05-22 2 views
5

파일의 입력을 사용하여 python 대화식 세션을 으로 시뮬레이션하고 사본을 저장 하시겠습니까? 내가 파일 sample.py이있는 경우 즉, :대화 형 Python 세션 시뮬레이션

>>> # 
... # this is a python script 
... # 
... def foo(x,y): 
... return x+y 
... 
>>> a=1 
>>> b=2 
>>> 
>>> c=foo(a,b) 
>>> 
>>> c 
3 
>>> 

내가 트위터의 파이썬에 표준 입력을 먹이 시도했다 :

# 
# this is a python script 
# 
def foo(x,y): 
    return x+y 

a=1 
b=2 

c=foo(a,b) 

c 

을 나는이 (생략 파이썬 배너)처럼 보이는 sample.py.out을 얻으려면 제안은 세부 사항이없는 'bash 스크립트'였습니다 (bash에서 스크립트 명령으로 실행, 기쁨 없음). 나는 그것이 쉬워야한다고 느낀다. 그리고 나는 간단한 것을 놓치고있다. exec 또는 뭔가를 사용하여 파서를 작성해야합니까?

파이썬 또는 ipython 솔루션이 좋을 것입니다. 그리고 난 후, 웹 브라우저에서이 HTML과 구문 강조로 변환 할 수 있습니다,하지만 그건 또 다른 문제입니다 ....

+0

대화식 파이썬 셸의 세션을 파일로 저장하거나 파이썬 셸/콘솔을 에뮬레이트하려고합니까? –

+0

@ JamesMills 저는 OP가 정확히 반대되는 것을 원한다고 생각합니다. 대화 형 셸처럼 보이게 변환 될 스크립트입니다. – luk32

+0

http://pythonhosted.org/sphinxcontrib-programoutput/ <- 이것은 이와 비슷한 것을 할 것입니다. –

답변

7

내가 code.interact 작동 것이라고 생각 :

from __future__ import print_function 
import code 
import fileinput 


def show(input): 
    lines = iter(input) 

    def readline(prompt): 
     try: 
      command = next(lines).rstrip('\n') 
     except StopIteration: 
      raise EOFError() 
     print(prompt, command, sep='') 
     return command 

    code.interact(readfunc=readline) 


if __name__=="__main__": 
    show(fileinput.input()) 

(내가 사용하는 코드를 업데이트 fileinput을 입력하여 stdin 또는 sys.argv에서 읽고이를 파이썬 2와 3에서 실행하게하십시오.)

+2

주석에 무엇을 말하고 있습니까? 문제가 발생했습니다. :) – Spacedman

+0

어떻게 사용합니까? 파이썬 인터프리터 또는 bash에서 온 것입니까? >>> show (sample.py) – Tim

+0

도 입력합니까?이 작업은 Python3에서 가능합니까? – Tim

관련 문제