10장 파일과 예외처리 교재문제

파일은 작년 수업에 썼던 아래 파일 이용

test

문제 1

#main.py
import lib

def main():
    lib.fileread()

if __name__ == "__main__":
    main()
#lib.py
def fileread():
    f=open("test.txt","r")
    for _ in range(3):
        line = f.readline().rstrip()
        print(line)
    f.close()

image.png

문제 2

#main.py
import lib

def main():
    m=lib.fileread()
    print("가장 긴 단어는", m, "입니다.")
if __name__ == "__main__":
    main()
#lib.py
def fileread():
    m=""
    f=open("test.txt","r")
    for line in f:
        line = line.rstrip()
        words = line.split()
        for word in words:
            if (len(m) < len(word)):
                m = word
    f.close()
    return m

image.png

문제 3

#main.py
import lib

def main():
    lib.fileread()
if __name__ == "__main__":
    main()
#lib.py
def fileread():
    c=1
    fn=input("파일 이름을 입력하시오: ")
    l = int(input("행 번호를 입력하시오: "))
    f=open(fn , "r")
    for line in f:
        line = line.rstrip()
        if(c==l):
            print(l, "번 행은", line,"입니다.")
        c+=1
    f.close()

image.png

문제 4

#main.py
import lib

def main():
    lib.makefile()
if __name__ == "__main__":
    main()
#lib.py
def makefile():
    lst = "abcdefghijklmnopqrstuvwxyz"
    for i in range(26):
        f = open(lst[i] + ".txt", "a")
        f.close()

image.png

문제 5

#main.py
import lib

def main():
    lib.file123()
if __name__ == "__main__":
    main()
#lib.py
def file123():
    f = open("line1.txt", "r")
    lines = f.readlines()
    f.close()
    lines.insert(2, "line 2-1\n")
    f = open("line2.txt", "w")
    for line in lines:
        f.write(line)
    f.close()

image.png

문제 6

#main.py
import lib

def main():
    lib.file123()
if __name__ == "__main__":
    main()
#lib.py
import random
def file123():
    f = open("numbers.txt", "w")
    for i in range(10):
        f.write(str(random.randint(1,100)) + "\n")
    f.close()