YongWook's Notes

<파이썬> 파일 입출력 및 문자열함수 본문

-software/python

<파이썬> 파일 입출력 및 문자열함수

글로벌한량 2016. 3. 14. 16:58

파이썬의 파일 입출력 및 연관 함수


파일 입출력 기본 양식
1
2
3
4
5
6
7
8
9
10
11
12
13
파일변수 = open("파일명", "w") # 옵션 w는 write -> 처음부터 새로 씀
print >> 파일이름, "입력할 내용"
파일변수.close() # close는 파일 조작 후 저장을 한다.
 
 
파일변수 = open("파일명", "a") # 옵션 a는 append -> 파일에 쓰여져 있는 내용에 덧붙혀 씀
print >> 파일이름, "입력할 내용"
파일변수.close()
 
 
파일변수 = open("파일명", "r") # 옵션r은 read -> 생략가능
변수 = 파일이름.readline()
파일변수.close()


line strip (23행, 양쪽 끝의 개행문자 제거)
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
myl = list("step by step")
print myl
# >> ['s', 't', 'e', 'p', ' ', 'b', 'y', ' ', 's', 't', 'e', 'p']
# 리스트는 char를 하나씩 저장한다
 
for dx, item in enumerate( myl ):   # for문으로 구현
    print dx, "==>",  item
# >> 0 ==> s
# >> 1 ==> t
# >> 2 ==> e
# >> 3 ==> p
# >> 4 ==> 
# >> 5 ==> b
# >> 6 ==> y
# >> 7 ==> 
# >> 8 ==> s
# >> 9 ==> t
# >> 10 ==> e
# >> 11 ==> p
 
good="\n \t 45676 \t \t \n  "
wood="----------------------"
xg = good.strip()  # strip()으로 good의 \n과 \t등의 개행문자를 제거할 수 있다.
 
print good, "*"  # line 29-31
print wood, "*"
print xg, "*"
print 35234, "*"
# >>
# >>       45676      
# >>   *
# >> ---------------------- *
# >> 45676 *
# >> 35234 *
 
#strip으로 원하는 문자 삭제가 잘 안되지만
#지울 문자의 길이를 아는 경우 쓸 수 있는 유용한 방법
 
file = file[len(지울str):] #길이로 삭제한다


line rstrip (9행, 오른쪽 끝의 지정한 문자 제거)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
myfile = open("man_about_town.txt", "r"# r로 파일을 읽음
 
sum = 0
while( True ) :
    boy = myfile.readline() #한 라인을 읽어온다
    if len(boy) == 0 : # boy의 글자 수를 센다 <- boy는 string이다.
        print "We got a null string so we break"
        break
    boy = boy.rstrip('\n\r') #  끝 문자(개행문자) 제거, 반드시 필요함
    sum = sum + int(boy) # string이었던 boy를 int로 변환한다.
 
print sum
 
myfile.close()


for문으로 한 라인씩 읽기
1
2
3
4
5
6
7
8
myfile = open("man_about_town.txt", "r"# r로 파일을 읽음
 
for oneline in myfile:
    data = oneline
    print data  #자동으로 줄을 바꿈.
                   #줄을 바꾸지 않고 append하려면 comma를 사용하여 print data, 를 사용한다.
                    
myfile.close()


split으로 라인을 리스트로 만들기
1
2
3
4
5
6
7
8
9
10
myfile = open("man_about_town.txt", "r"# r로 파일을 읽음
 
for oneline in myfile:
    data = oneline.split()   # 읽은 라인을 리스트(List)로 만듦
    print "\n 전체 라인의 원소 리스트 = ", data
 
    for location  in range( len(data) ) :
        print location+1, "= ", data[ location ]  # index로 data 출력
                    
myfile.close()