파이썬 기초 | 파일 open() , close() | readline, readlines | writelines | ord(문자), chr(숫자)함수

    728x90

     

    1. 파일 읽기

     

    ▶ 파일 읽는 순서

     

    * 파일 열기: open() 함수 사용

    * 파일 읽기: Read를 의미하는 "r" 적어주기

    *파일 쓰기: "w" 적어주기

    * 파일 닫기: 변수명.close()

     

    변수명 = open("파일경로/파일이름", "r")

     

    ▶ readline() 함수

    : 파일에 담아준 데이터를 읽기 위한 함수

     

    * readline() : 파일의 내용을 한 행씩 읽어옴

     

    * readlines() : 파일의 내용을 한꺼번에 읽어 리스트에 저장함

     

    [연습문제]

     

    * 파일의 내용을 모니터에 출력할 때 몇 번째 행에 어떤 내용이 있는지 알아볼 수 있도록 제일 앞에 행 번호가 붙도록 출력하기

    inFile = None
    lineNum = 1
    
    inFile = open("C:/FirstPython/myData1.txt", "r")
    
    while True :
        inStr = inFile.readline()
        if inStr == "" :
            break
        print(lineNum, ":", inStr, end = '')
        lineNum  += 1
    
    inFile.close()

     


    2. 파일 쓰기

    : 결과를 파일에 쓰게 되면 모니터에 나오지 않고, 파일로 직접 저장됨.

    * writelines(): 파일에 결과를 씀

    변수명 = open("파일경로/파일이름", "w")

     

    ▶ 직접 입력한 내용을 파일에 쓰기

    outFile = None
    outStr = ""
    
    outFile = open("C:/FirstPython/myData2.txt", "w")
    
    outStr = "안녕하세요??"
    outFile.writelines(outStr+"\n")
    
    outStr = "반갑습니다~~"
    outFile.writelines(outStr+"\n")
    
    outStr = "자주만나요^&^"
    outFile.writelines(outStr+"\n")
    
    outFile.close()
    print("---myData2.txt 파일이 저장됨---")

     

     

    ▶ 사용자에게 입력받은 내용을 파일에 쓰기

     

    outFile = None
    outStr = ""
    
    outFile = open("C:/FirstPython/myData3.txt", "w")
    
    while True :
        outStr = input("내용 입력 => ")
        if outStr != "" :
            outFile.writelines(outStr+"\n")
        else :
            break
    
    outFile.close()
    print("---myData3.txt 파일이 저장됨---")

     

     

     

    ▶ 파일에서 읽어온 내용으로 파일 생성해서 쓰기

    inFile, outFile = None, None
    inStr = ""
    
    inFile = open("C:/firstpython/myData3.txt","r")
    outFile = open("C:/firstpython/myNote.txt","w")
    
    inList = inFile.readlines()
    for inStr in inList :
        outFile.writelines(inStr)
    
    inFile.close()
    outFile.close()
    print("---myData3.txt가 myNote.txt로 복사되었음---")

     

     

     

    [연습문제]

     

    * 보안이 필요한 파일의 내용을 파일로 암호화해서 저장하기

     

    ▶ 글자 암호화 하는 방법

    * ord(문자) : 문자의 고유 숫자를 알려줌

    * chr(숫자) : 고유 숫자에 해당하는 문자를 알려줌

     

    secureFile = None
    inStr, secure = "",""
    
    secureFile = open("C:/firstpython/secure.txt", "w", encoding = "UTF-8")
    
    while True :
        inStr = input("스파이에게 전달할 메시지 => ")
        if inStr == "" :
            break       
        for ch in inStr :
            num = ord(ch)    # 문자의 고유 숫자를 출력해서
            num += 100       # 100을 더한 뒤
            secure += chr(num)     # 100을 더한 숫자에 해당하는 문자값을 다시 출력
    
    secureFile.writelines(secure)
    secureFile.close()
    print("---secure.txt 암호화 완료---")

     

     

    [연습문제]

     

    * 수업에 결석한 친구에게 강의노트 전달해주기

    inFile , outFile = None, None
    inStr = ""
    
    inFile = open("C:/firstpython/pythonNote.txt", "r")
    outFile = open("C:/firstpython/myNote.txt", "w")
    
    inList = inFile.readlines()
    for inStr in inList :
        outFile.writelines(inStr)
        
    inFile.close()
    outFile.close()
    print("---pythonNote.txt가 myNote.txt로 복사되었음---")

    728x90

    댓글