파이썬 기초 | 파일 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

댓글