2013-12-12 2 views
2

사용자가 파이썬에서 파일을 여는 것을 포함하는 프로그램을 만들려고합니다.가변 변수 파일을 파이썬에서 엽니 다.

def fileopen(): 
    source = input("Enter the name of the source file (w/ extension): ") 
    f = open("%s" %source, "r") #open the file 
    filelist = f.read() 
    f.close() 
    print(filelist) 
    encrypt(filelist) 

이 다음과 같은 오류가 발생한다 : 다음은 관련 코드입니다

Enter the name of the source file (w/ extension): source 

Traceback (most recent call last): 
    File "C:\Python27\Encrypt\Encrypt.py", line 27, in <module> 
    fileopen() 
    File "C:\Python27\Encrypt\Encrypt.py", line 2, in fileopen 
    source = input("Enter the name of the source file (w/ extension): ") 
    File "<string>", line 1, in <module> 
NameError: name 'source' is not defined 
>>> 
나는 그것이 (예 source.txt.)하지만 정적 파일로 설정 떠날 때 그것은 일하는

사용할 파일을 선택할 수 있어야합니다.

+1

프롬프트가 필요한 이유가 있습니까? 명령 행 인수는 보통 더 간단한 옵션입니다. –

답변

4

input(); 여기 raw_input()를 사용

source = raw_input("Enter the name of the source file (w/ extension): ") 
f = open(source, "r") 

input()

파이썬 표현식으로 입력을 평가한다. 프롬프트에 source을 입력하면 Python은 이것을 변수 이름으로 간주합니다.

>>> input('Gimme: ') 
Gimme: source 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<string>", line 1, in <module> 
NameError: name 'source' is not defined 
>>> input('Gimme: ') 
Gimme: Hello 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<string>", line 1, in <module> 
NameError: name 'Hello' is not defined 

raw_input()은 문자열뿐입니다.

관련 문제