본문 바로가기

Python

Python 과 File

◈ 파일 읽기

 

- Python 에서는 파일의 내용을 읽기 전 작업할 파일과 파일로 어떤 작업을 할지 인식시켜야 한다

- open() 함수로 해당 기능을 수행하게 한다 : read, write의 동작이 아닌 파일을 '열기'만 한다

- open() 과 같은 함수는 어떤 프로그래밍 언어에서든 존재한다

 

과거 DOS 시절에는 파일명과 확장명에 있어 제한수가 있었다

FILENAME.EXE 와 같이 8글자.3글자로 표현했어야 하지만 현재는 제한이 많이 자유로워졌다

 

 

▷ 사용

fhand = open('mbox.txt', 'r')

● open( '파일명', '모드명' )

- 파일명 : default 폴더 경로

windows 및 python 의 경우 경로에 대한 default 값(: current directory / 현재 폴더)이 지정되어 있다

 

- 모드명 : default 'r'

 

full path : 전체 경로와 file 명

[ Drive 이름 \ C: \ User \ Program files \ …\ a.txt ]

 

* file 명을 제외한 경로만을 이야기 하는 경우도 있다. 대부분 file 명까지 포함한 전체 경로를 지칭

 

 

▷ 처리

text mode 로 읽어올 시, 중간 데이터가 가공되는 경우가 있다

ex) \r 의 경우 중간 생략되어 나온다

 

 

▷ 핸들

default : Text mode

읽기 

 

def Main() :
	xFile = open("test.py")
    for x in xFile :
    	print(x)
        
Main()

 

open( 파일명, 경로 )

" test.py " 라는 파일을 python 프로그램이 있는 경로( default 경로 )에 있다면 해당 파일을 읽어온다

 

 

● 한 줄씩 읽기

def Main() :
	xFile = open("test.py")
    for x in xFile :
    	print({x})			# {}로 인수를 표현할 경우 줄 별로 읽어들인다
					# 기본적으로 각 줄마다 줄바꿈 표현 문자(\r, \n)이 들어있음을 알 수 있다
Main()

for 문을 활용하여 한 줄씩 읽어들일 수 있다

print({x}) - 인수 밖으로 { } 를 표현함으로써 각 줄마다 읽어옴을 알 수 있다

 

 

● 파일 '전체' 읽기

fhand = open('mbox-short.txt')
inp = fhand.read()
print(len(inp))
>> 94626

print(inp[:20])
>> From stephen marquar

.read method를 활용하여 파일을 한 줄씩 읽는 것이 아닌 한꺼번에 읽어들일 수 있다

 

 

● 특정 조건에 만족하는 줄만 출력

fhand = open('mbox-short.txt')
for line in fhand :
	if line.statswith('From') :
		print(line)

for 문에 if 문을 사용하여 특정 조건에만 만족하는 줄만 출력한다

 

 

 

 

▒ 문제 ) text 파일을 하나 만들어 한 줄씩 읽어들인 후 dictionary 화 해보자 ▒

 

'Python' 카테고리의 다른 글

Python 클래스와 객체  (0) 2023.03.05
python으로 DB 파일 출력 및 수정  (0) 2022.10.27
파이썬 딕셔너리(Python Dictionary)  (0) 2022.09.06
튜플(Tuple)  (0) 2022.09.06