2012-12-07 2 views
2

사용자로부터 파일 이름을 가져 와서 execfile()을 사용하여 파일을 실행하려고합니다. 나는 파일 이름이 변수로 전달 될 때이 작업을 수행하는 방법에 대한 확신입니다파이썬에서 execfile()을 사용하여 사용자 입력에 사용합니다.

execfile("example.py") 

: 나는 execfile() 작품으로는 다음과 이해

print "Please enter the name of the file" 
filename = raw_input().split(".")[0] 
module = __import__(filename) 
execfile(module)    <-- this is where I want to execute the file 

: 다음은 내 코드입니다. 파이썬 2.7 사용하고 있습니다.

+0

이미 파일을 가져 왔으므로 이제 실행 코드가 있으며, 왜 'execfile()'함수를 통해 * module *을 실행해야합니까? –

+0

다른 프로그램에서이 코드를 실행하고 있는데, 사용자가 입력 한 프로그램의 코드가 무엇인지 알지 못하기 때문에 실행하고 예외를 catch하려고합니다. 정의되지 않은 함수에 주체가 무엇인지 알지 못하므로 – user1801279

+0

과 관련된 [log 구문 오류 및 catch되지 않는 예외] (http://stackoverflow.com/a/12616304/4279)를 한번 실행해야합니다. – jfs

답변

4

가져 오기를 삭제하고 파일 이름을 실행하십시오. 이 방법으로 평 확장이 필요하고 그것은 어떤 if __name__ == '__main__' 섹션 실행됩니다 :

filename = raw_input("Please enter the name of the file: ") 
execfile(filename) 

당신이 그냥 가져 오려면, 당신은 '평'을 제거 할 필요를하고 하지if __name__ == '__main__'를 실행합니다 섹션 :

filename = raw_input("Please enter the name of the file: ").split(".")[0] 
module = __import__(filename) 
+0

고맙습니다. 가능하다면 어디서 잘못되었는지 힌트를 주시겠습니까? – user1801279

+0

네, 죄송 합니다만, 사용자가 확장자 .py를 입력 할 것인지 모르겠다는 이유로 의도적으로 제거했습니다. 그래서 내가 입력을 받아들이도록 그것을 제거하고 그것에 .py를 추가한다. – user1801279

관련 문제