[python] open with 문을 사용하여 파일을 여는 방법


이와 같이 중첩 된 블록을 사용하면,

with open(newfile, 'w') as outfile:
    with open(oldfile, 'r', encoding='utf-8') as infile:
    #your logic goes here

나는 파이썬에서 파일 입출력을하는 방법을 찾고있다. 파일의 이름과 이름을 비교하고 파일의 텍스트를 텍스트에 추가하는 동안 파일에서 다른 파일로 이름 목록 (한 줄에 하나씩)을 읽으려면 다음 코드를 작성했습니다. 코드가 작동합니다. 더 잘할 수 있을까요?

내가 사용하는 싶었던 with open(... 문을 모두 입력 및 출력 파일에 대한하지만 그들은 같은 블록에있을 수있는 방법을 볼 수없는 임시 위치에 이름을 저장할 필요가 의미합니다.

def filter(txt, oldfile, newfile):
    Read a list of names from a file line by line into an output file.
    If a line begins with a particular name, insert a string of text
    after the name before appending the line to the output file.

    outfile = open(newfile, 'w')
    with open(oldfile, 'r', encoding='utf-8') as infile:
        for line in infile:
            if line.startswith(txt):
                line = line[0:len(txt)] + ' - Truly a great person!\n'

    return # Do I gain anything by including this?

# input the name you want to check against
text = input('Please enter the name of a great person: ')    
letsgo = filter(text,'Spanish', 'Spanish2')