본문 바로가기

IT

파이썬 for beginner 3판 – chapter 11 self study

반응형

chapter 11 - 파일 입출력


 

selfstudy 11-1


코드

inFp = None	# 입력 파일
inStr = ""		# 읽어온 문자열
lineNum = 1

inFp = open("C:/Temp/data1.txt", "r")

while True :
    inStr = inFp.readline()
    if inStr == "" :
        break;
    print("%d : %s" %(lineNum, inStr), end="")
    lineNum += 1

inFp.close()

selfstudy 11-2


코드

inFp = None 
inList, inStr = [ ], ""    
lineNum = 1

inFp = open("C:/Temp/data1.txt", "r")

inList = inFp.readlines()
for inStr in inList :
     print("%d : %s" %(lineNum, inStr), end = "")
     lineNum += 1

inFp.close()

 

selfstudy 11-3


코드

outFp = None 
fName, outStr = "", ""

fName = input("파일명을 입력하세요 : ")
outFp=open(fName, "w" )

while True:
    outStr = input("내용 입력 : ")
    if outStr != "" :
        outFp.writelines(outStr + "\n")
    else :
        break

outFp.close()
print("--- 파일에 정상적으로 써졌음 ---")

 

selfstudy 11-4


코드

inFp, outFp = None, None 
inFname, outFname, inStr = "", "", ""

inFname = input("소스 파일명을 입력하세요 : ")
outFname = input("타깃 파일명을 입력하세요 : ")

inFp=open(inFname, "r")
outFp=open(outFname, "w")

inList = inFp.readlines()
for inStr in inList :
    outFp.writelines(inStr)

inFp.close()
outFp.close()
print("--- %s 파일이 %s 파일로 복사되었음 ---" % (inFname, outFname))

 

selfstudy 11-5


코드

from tkinter import *
from tkinter.filedialog import *
from tkinter import messagebox
## 함수 선언 부분 ##
def loadImage(fname) :
    global inImage, XSIZE, YSIZE
    fp = open(fname, 'rb')

    for i in range(0, XSIZE) :
        tmpList = []
        for k in range(0, YSIZE) :
            data = int(ord(fp.read(1)))
            tmpList.append(data)
        inImage.append(tmpList)

    fp.close()

def displayImage(image) :
    global XSIZE, YSIZE
    rgbString = ""
    for i in range(0, XSIZE) :
        tmpString = ""
        for k in range(0, YSIZE) :
            data = image[i][k]
            tmpString += "#%02x%02x%02x " % (data, data, data) # x 뒤에 한칸 공백
        rgbString += "{" + tmpString +  "} " # } 뒤에 한칸 공백
    paper.put(rgbString)

## 전역 변수 선언 부분 ##
window = None
canvas = None
XSIZE, YSIZE=256,256
inImage=[] # 2차원 리스트 (메모리)

## 메인 코드 부분 ##
window = Tk()
window.title("흑백 사진 보기")
canvas = Canvas(window, height = XSIZE, width = YSIZE)
paper = PhotoImage(width = XSIZE, height = YSIZE)
canvas.create_image((XSIZE/2, YSIZE/2), image = paper, state = "normal")

# 파일 --> 메모리
filename = askopenfilename(parent=window, filetypes=(("모든 파일", "*.*"), ("모든 파일", "*.*")))
try :
    loadImage(filename)
    # 메모리 --> 화면
    displayImage(inImage)
except :
    messagebox.showerror("오류", filename+" 처리에 실패했습니다.")
else :
    messagebox.showinfo("성공", filename + " 이 정상 처리되었습니다.")
finally:
    messagebox.showinfo("종료", "수고하셨습니다.")

canvas.pack()
window.mainloop()