[Python] 텍스트 파일 불러오기

이소티·2023년 5월 2일

python

목록 보기
9/33

1. 파일 모드


  • open() : 파일 열기

  • read() or write() : 읽기 또는 쓰기

  • close() : 파일 닫기




파일 모드는 파일을 어떤 목적으로 open 할지에 따라 결정


  • 'w' : 쓰기 전용(파일이 있으면 덮어씌움)

  • 'a' : 쓰기 전용(파일이 있으면 덧붙임)

  • 'x' : 쓰기 전용(파일이 있으면 에러 발생)

  • 'r' : 읽기 전용(파일이 없으면 에러 발생)




2. 'w' 모드


# write()


file = open('C:/pythonTxt/test.txt','w')

strCnt = file.write('Hello world ~')
print(f'strCnt = {strCnt}')

file.close()

# 시스템 시간과 일정을 텍스트 파일에 작성

  
import time

lt = time.localtime()

dataStr = '[' + str(lt.tm_year) + '년' + str(lt.tm_mon) + '월' + str(lt.tm_mday) + '일' + '] '

todaySchedule = input('오늘 일정 : ')

file = open('C:/pythonTxt/test.txt','w')
file.write(dataStr + todaySchedule)
file.close()

# 사용자가 입력한 숫자에 대한 소수를 구하고 이를 파일에 작성해보자

  
uri = 'C:/pythonTxt/'

def writePrimeNumber(n) :

    file = open(uri + 'prime_numbers.txt', 'a')
    file.write(str(n))
    file.write('\n')
    file.close()


  
  
inputNumber = int(input('0보다 큰 점수 입력 : '))

for number in range(2, (inputNumber+1)) :

    flag = True

    for n in range(2,number) :

        if number % n == 0 :
            flag = False
            break
    
    if (flag) :
  
        writePrimeNumber(number)




3. 'a'


file = open(uri + '5_037.txt','a')
file.write('python study !')
file.close()




4. with ~ as문


close( ) 생략 가능

with open(uri + '5_037.txt','a') as f :
  f.write('python study ~!')

# 로또 번호 생성기 프로그램을 만들고 파일에 번호를 출력

  
import random
uri = 'C:/pythonTxt/'

  

  def writeNumbrs(nums) :

    for idx, num in enumerate(nums) :

        with open(uri + 'lotto.txt', 'a') as f :

            if idx < (len(nums) - 2) : 
                f.write(str(num) + ',')
            
            elif idx == (len(nums) - 2) :
                f.write(str(num))
            
            elif idx == (len(nums) - 1) :
                f.write('\n')
                f.write('bonus : ' + str(num))
                f.write('\n')



                               
rNums = random.sample(range(1,46),7)
print(f'rNums : {rNums}')

                               
writeNumbrs(rNums)




5. writelines( )


list, tuple data를 추가할 수 있음

languages = ['c/c++', 'java', 'c#', 'python', 'javasript']

uri = 'C:/pythonTxt/'

for item in languages :

    with open(uri + 'languages.txt','a') as f :
  
        f.write(item)
        f.write('\n')

languages = ['c/c++', 'java', 'c#', 'python', 'javasript']

uri = 'C:/pythonTxt/'

with open(uri + 'languages.txt','a') as f :
  
    f.writelines(languages)

# 딕셔너리에 저장된 과목별 점수를 파일에 저장하는 코드 작성

  
scoreDic = {'kor' : 85, 'eng' : 90, 'mat' : 92, 'sci' : 79, 'his' : 82}

uri = 'C:/pythonTxt/'

for key in scoreDic.keys() :

    with open(uri + 'scoreDic.txt','a') as f :
  
        f.write(key + '\t' + str(scoreDic[key]) + '\n')




6. readlines( )


  • readlines( ) : 한 행을 읽어서 문자열로 변환
  • readlines( ) : 파일의 모든 데이터를 읽어서 리스트 형태로 반환

# 파일에 저장된 과목별 점수를 파이썬에서 읽은 후, 딕셔너리에 저장하는 코드 작성


scoreDic = {}
uri = 'C:/pythonTxt/'

  
with open(uri + 'score.txt', 'r') as f :
  
    line = f.readline()     # 이 줄이 없으면 데이터를 읽을 수 없음
  

    while line != '' :

        tempList = line.split(':')
        scoreDic[tempList[0]] = int(tempList[1].strip('\n'))

        line = f.readline()     # 이 줄이 없으면 무한반복됨

  
  
print(f'scoreDic : {scoreDic}')
profile
데이터 관련 학습 일지

0개의 댓글