파이썬 File 관리

2017. 8. 11. 22:08· FrameWork/Python
반응형
SMALL


파이썬에서 File에 있는 값들을 관리하는 방법





File 라는 이름의 모듈하나 만들어


1
2
3
4
5
6
7
#-*- coding: utf-8 -*-
import os
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
 
Colored by Color Scripter
cs



임포트 한 os 객체에서 현재 작업 디렉토리를 얻어올수 있어

현재 작업 디렉토리 와 구분자 확인가능

파일 구분자는 os 에 따라서 슬래쉬와 역슬래쉬로 달라


cwd 는 current work directory 약자

sep 는 seperator의 약자







1
2
3
4
5
6
7
8
9
10
11
12
13
#-*- coding: utf-8 -*-
import os
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기
    filePath=os.getcwd()+os.sep+"testFile.txt"
 
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
Colored by Color Scripter
cs


파일 경로를 이렇게 구성하면


현재 작업 디렉토리 하위에 testFile.txt 파일이 존재해야함




이 test 패키지 우클릭해서 New -> File 해서

하위에 testFile.txt 하나 만들어줘



만든 testFile에 이렇게 적어둬


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#-*- coding: utf-8 -*-
import os
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기
    filePath=os.getcwd()+os.sep+"testFile.txt"
    print filePath
 
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
Colored by Color Scripter
cs


print filePath 해주면



읽어낼 파일의 경로가 출력 됐어




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#-*- coding: utf-8 -*-
import os
import codecs
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기    filePath=os.getcwd()+os.sep+"testFile.txt"
    print filePath
    # 파일 열기 .open(파일경로, 모드, 인코딩)
    f=codecs.open(filePath,"r","utf-8") # 읽기 모드
    # 텍스트 문서의 내용 읽어들이기
    result=f.read()
    print result
    f.close()
 
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
Colored by Color Scripter
cs


이렇게 try 문 안에 코딩을 해주면


텍스트 파일에 있는 내용을 읽어옴



이 작업을 하기위해서 os 와 codecs 를 임포트 해주고

읽어올 파일 경로를 구성하고 파일을 열어준 것.


.open( ) 안에 "r"은 읽기 모드임






파일 만들어서 문자열 기록하는 코드 추가


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#-*- coding: utf-8 -*-
import os
import codecs
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기    filePath=os.getcwd()+os.sep+"testFile.txt"
    print filePath
    # 파일 열기 .open(파일경로, 모드, 인코딩)
    f=codecs.open(filePath,"r","utf-8") # 읽기 모드
    # 텍스트 문서의 내용 읽어들이기
    result=f.read()
    print result
    f.close()
 
    # 파일 만들어서 문자열 기록하기
    letterPath=os.getcwd()+os.sep+"testFile2.txt"
    letter=codecs.open(letterPath, "w", "utf-8") # 쓰기 모드
    letter.write(u"To my Friend ~")
    letter.close() # close 하는 순간 파일이 만들어진다.
 
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
Colored by Color Scripter
cs


하고 실행하면



눈에 보이는 건 똑같은데




test 패키지를 우클릭 해서 Refresh 해주면



testFile2.txt 가 알아서 생긴것을 볼수 있다.


들어가서 내용을 확인해 보면




문자열도 기록되어 있다.








파일 열어서 문자열 추가하기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#-*- coding: utf-8 -*-
import os
import codecs
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기    filePath=os.getcwd()+os.sep+"testFile.txt"
    print filePath
    # 파일 열기 .open(파일경로, 모드, 인코딩)
    f=codecs.open(filePath,"r","utf-8") # 읽기 모드
    # 텍스트 문서의 내용 읽어들이기
    result=f.read()
    print result
    f.close()
 
    # 파일 만들어서 문자열 기록하기
    letterPath=os.getcwd()+os.sep+"testFile2.txt"
    letter=codecs.open(letterPath, "w", "utf-8") # 쓰기 모드
    letter.write(u"To my Friend ~")
    letter.close() # close 하는 순간 파일이 만들어진다.
 
    # 파일을 열어서 문자열 추가하기
    letter2=codecs.open(letterPath, "a", "utf-8") # 추가 모드
    for i in range(10):
        letter2.write(u"\n안녕하세요")
    letter2.close()
 
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
Colored by Color Scripter
cs


문자열 추가 코드를 추가해주고 실행시켜 보면




안녕하세요 가 10번 찍혀 있어


계속 Run 시켜봐도 10번 뿐이 안찍힘




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#-*- coding: utf-8 -*-
import os
import codecs
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기    filePath=os.getcwd()+os.sep+"testFile.txt"
    print filePath
    # 파일 열기 .open(파일경로, 모드, 인코딩)
    f=codecs.open(filePath,"r","utf-8") # 읽기 모드
    # 텍스트 문서의 내용 읽어들이기
    result=f.read()
    print result
    f.close()
 
    # 파일 만들어서 문자열 기록하기
    letterPath=os.getcwd()+os.sep+"testFile2.txt"
#     letter=codecs.open(letterPath, "w", "utf-8") # 쓰기 모드
#     letter.write(u"To my Friend ~")
#     letter.close() # close 하는 순간 파일이 만들어진다.
 
    # 파일을 열어서 문자열 추가하기
    letter2=codecs.open(letterPath, "a", "utf-8") # 추가 모드
    for i in range(10):
        letter2.write(u"\n안녕하세요")
    letter2.close()
 
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
Colored by Color Scripter
cs


쓰기 모드를 주석 처리하고 실행시켜보면




그때서야 안녕하세요가 추가로 10개 더 생성된 것을 확인할 수있어



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#-*- coding: utf-8 -*-
import os
import codecs
 
print u"현재 작업 디렉토리 :", os.getcwd()
print u"파일 플렛폼의 파일 구분자 :", os.sep
 
try:
    # 읽어올 파일 경로 구성하기
    filePath=os.getcwd()+os.sep+"testFile.txt"
    print filePath
    # 파일 열기 .open(파일경로, 모드, 인코딩)
    f=codecs.open(filePath,"r","utf-8") # 읽기 모드
    # 텍스트 문서의 내용 읽어들이기
    result=f.read()
    print result
    f.close()
    
    # 파일 만들어서 문자열 기록하기
    letterPath=os.getcwd()+os.sep+"testFile2.txt"
    letter=codecs.open(letterPath, "w", "utf-8") # 쓰기 모드
    letter.write(u"To my Friend ~")
    letter.close() # close 하는 순간 파일이 만들어진다.
    
    # 파일을 열어서 문자열 추가하기
    letter2=codecs.open(letterPath, "a", "utf-8") # 추가 모드
    for i in range(10):
        letter2.write(u"\n안녕하세요")
    letter2.close()
    
    print u".readline() 테스트"
    letter3=codecs.open(letterPath, "r", "utf-8")
    # 한줄씩 읽어와서 출력하기
    print letter3.readline()
    print letter3.readline()
    letter3.close()
    
    print u".readlines() 테스트"
    letter4= codecs.open(letterPath, "r", "utf-8")
    # 한줄씩 읽은 데이터를 liest 에 담아서 리턴해준다.
    lines=letter4.readlines()
    # 반복문 돌면서 출력하기
    for item in lines:
        print item
    
except Exception as e:
    # 예외가 발생했을때 실행되는 블럭
    print(e)
    
Colored by Color Scripter
cs


readline, readlines 테스트 추가 해주면



readline 가 한줄을 읽어 온 것이고


readlines 하면 파일 전부를 읽어 온 것임을 알수 있다.





File2 라는 이름의 모듈하나 더 만들어서


1
2
3
4
5
6
7
8
9
#-*- coding: utf-8 -*-
import re
 
sample= u"a  b  c  ddd      eee"
 
result=re.split(r"[\t ]+", sample)
 
print result
 
Colored by Color Scripter
cs


이렇게 코딩해서 실행시켜 보면



이렇게 list 가 나옴


정규표현식을 쓸때 \가 들어가는데

정규표현식에서 \는 특별한 기호야

근데 \가 +뒤에 들어가면?


오류를 발생시킴


파이썬의 문자열에서 \를 이상하게 해석하지 말고 그냥 문자 그대로 봐주세요 가 r을 붙여주는 거야





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#-*- coding: utf-8 -*-
import re
import os
import codecs
 
sample= u"a  b  c  ddd      eee"
 
result=re.split(r"[\t ]+", sample)
 
print result
 
cwd=os.getcwd()
filePath=cwd+os.sep+"testFile.txt"
f=codecs.open(filePath, "r", "utf-8")
 
while True:
    data=f.readline()
    if data=="":
        break #반복문 블럭 빠져 나오기
    print data 
cs




무한루프 while 문을 만들어 줘서 

읽을게 없으면 반복문 블럭 빠져나오게 만들어 준거야






























반응형
LIST

'FrameWork > Python' 카테고리의 다른 글

파이썬 디비 연동  (0) 2017.08.11
MariaDB Setup  (0) 2017.08.11
파이썬 예외처리 try / except  (0) 2017.08.11
파이썬 Decorator  (0) 2017.08.10
파이썬 lambda  (4) 2017.08.10
'FrameWork/Python' 카테고리의 다른 글
  • 파이썬 디비 연동
  • MariaDB Setup
  • 파이썬 예외처리 try / except
  • 파이썬 Decorator
- 광속거북이 -
- 광속거북이 -
IT관련 일하면서 공부 및 일상 에 관한 내용들을 기록하기 위한 블로그 입니다.
누리IT관련 일하면서 공부 및 일상 에 관한 내용들을 기록하기 위한 블로그 입니다.
- 광속거북이 -
누리
- 광속거북이 -
전체
오늘
어제
  • 카테고리 (457)
    • 구글문서 (4)
    • 설치방법들 (3)
    • FrameWork (73)
      • Django (6)
      • Python (32)
      • AngularJS (13)
      • spring (21)
    • Programing (61)
      • JAVA (11)
      • etc... (2)
      • 오류 해결 (29)
      • Algorithm (5)
    • Front-End (25)
      • CSS (3)
      • html (6)
      • javascript (10)
      • vueJS (5)
    • Back-End (5)
      • 리눅스 (12)
      • PostgreSQL (14)
      • MySQL (2)
      • Shell (1)
      • docker (1)
      • GIT (1)
    • Util (9)
      • BIRT (2)
      • JMeter (3)
      • MobaXterm Personal (1)
      • ClipReport (2)
    • 이클립스 설정 (10)
      • SVN (1)
    • 업무중 기록해둘 것들... (1)
    • 영화 (8)
    • etc.. (199)
      • 여행 (25)
      • AI (1)
      • 문화생활 (3)
      • tistory (3)
      • 글, 생각 (4)
      • 먹을 곳 (29)
      • issue (4)
      • 결혼 (1)
      • 가족여행기록 (1)
      • Tip (51)
      • 강아지 (5)
      • 일기 (0)
      • 게임 (3)
      • 주식 (7)
      • 코로나19 (7)
      • 맥북 (5)
    • 비공개 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 설치
  • IntelliJ
  • 연천
  • 합정
  • 해지
  • tomcat
  • 삼성증권
  • 설정
  • PostgreSQL
  • 리눅스
  • 인텔리제이
  • 포켓몬고
  • 윈도우10
  • 맛집
  • 백준
  • Java
  • 이클립스
  • VSCode
  • 제주도
  • 카페

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
- 광속거북이 -
파이썬 File 관리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.