2014-02-23 3 views
0

나는 사용자 제공 파일을 여는 데 도움이되는 함수를 작성 중이다. 나는 내가 open_file 기능에서 열린 파일을 닫습니다 어떻게,을 내가 main에서 open_file 전화 번 :파이썬의 main 함수에서 파일을 닫는 방법?

def main(): 

    open_file() 


def open_file(): 
    input_file_name = str(input("Input file name: ")) 
    while input_file_name != 'measles.txt': 
     input_file_name = str(input("Please enter a valid input file name: ")) 
    f1 = open(input_file_name, 'r') 
    return f1 

main() 

내 질문은 : 여기에 지금까지 가지고 무엇인가?

답변

0

을, 당신은 선택 (할) 수 그것은 어떻게 든 일어난다. 함수 호출을 표현식의 일부로 사용하면됩니다.

그래서 하나

f = open_file() 

을하고 당신이 필요로하는 무엇이든, 또는

f = open_file() 
f.close() 

(둘 다 매우 의미가있는)

의 속기 인

open_file().close() 

또는 w HICH 자동으로 파일을 닫습니다

f = open_file() 
with f: 
    do_whatever(f) 

의 속기되고,

with open_file() as f: 
    do_whatever(f) 

가장 적절한 것은 할 것으로 보인다.

+0

다른 방법을 사용해 주셔서 감사합니다. –

3

한 가지 방법은 사용하는 것입니다 with statement :

def main(): 
    with open_file() as f: 
     # use f here 

코드가 with 문에서 존재하는 경우 파일은 자동으로 종료됩니다.

0

또한 파일 객체를 참조하는 변수를 생성하고, 수동으로 나중에 파일을 닫습니다 그것을 사용할 수 있습니다 : 당신이 open_file()에서 파일 개체를 반환으로

def main(): 
    f = open_file() 
    # Operate on file ... 
    f.close() 
관련 문제