YongWook's Notes

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

-software/python

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

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

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


파일 입출력 기본 양식
파일변수 = open("파일명", "w") # 옵션 w는 write -> 처음부터 새로 씀
print >> 파일이름, "입력할 내용"
파일변수.close() # close는 파일 조작 후 저장을 한다.


파일변수 = open("파일명", "a") # 옵션 a는 append -> 파일에 쓰여져 있는 내용에 덧붙혀 씀
print >> 파일이름, "입력할 내용"
파일변수.close()


파일변수 = open("파일명", "r") # 옵션r은 read -> 생략가능
변수 = 파일이름.readline()
파일변수.close()


line strip (23행, 양쪽 끝의 개행문자 제거)
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행, 오른쪽 끝의 지정한 문자 제거)
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문으로 한 라인씩 읽기
myfile = open("man_about_town.txt", "r")  # r로 파일을 읽음

for oneline in myfile:
    data = oneline
    print data  #자동으로 줄을 바꿈. 
                   #줄을 바꾸지 않고 append하려면 comma를 사용하여 print data, 를 사용한다.
                   
myfile.close()


split으로 라인을 리스트로 만들기
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()





Comments