파이썬 파일 사용법



이번 강좌는 파일 생성, 읽기, 쓰기에 대해 알아보도록 하겠다.


파일 생성

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("newfile.txt", 'w')

file.close()

==========================================================

결과 :  

==========================================================


프로그램을 실행 한 곳에 newfile.txt라고 파일이 생성 된 것을 확인 해 볼 수 있다.


open은 파일을 생성, 읽기, 추가 등을 할 수 있다.


open( 파일명, 모드 ) 모드는 r(읽기), w(쓰기), a(추가) 


경로 지정 파일 생성

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'w')

file.close()

==========================================================

결과 :  

==========================================================


c:\\ 경로에 newfile.txt이 생성 된것을 확인 할 수 있다.



파일 쓰기

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'w')

file.write("안녕하세요 파일씨~\n")

file.write("반가워요")

file.close()

==========================================================

결과 :  

==========================================================


c:\\ 경로 newfile.txt에 "안녕하세요 파일씨~\n", "반가워요" 2줄의 문장이 입력 된 것을 확인 할 수 있다.


모드는 w로 하여 write 함수를 사용해 파일에 입력 할 수 있다.


파일 읽기1

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'r')

line = file.readline()

print line

line = file.readline()

print line

file.close()

==========================================================

결과 :  

안녕하세요 파일씨~


반가워요

==========================================================


파일 open 모드를 'r' 로 한 다음에 readline을 이용하여 한줄 씩 파일을 읽어 올 수 있다.


파일 읽기2

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'r')

lines = file.readlines()


for line in lines :

    print line


file.close()

==========================================================

결과 :  

안녕하세요 파일씨~


반가워요

==========================================================


readlines를 이용하여 여러줄을 읽어 올 수 있다.



파일 내용 추가 하기

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


file = open("c:\\newfile.txt", 'a')


file.write("\n잘가요")


file.close()

==========================================================

결과 :  

==========================================================


open 모드를 a 로 주면 파일 맨 끝에 내용을 추가 할 수 있다.



앞에 예제들을 보면 항상 프로그램을 끝 마치기 전에 파일 close를 한다.


이것을 하지 않으면 파일에 문제가 생기거나 메모리에 문제가 생길 수 있으니 항상 해준는 것이 좋다.


하지만 이렇게 번거로운 작업을 매번 하기 힘드니 with 문을 이용해 close 하는 것을 잊지 않아 항상


with를 사용해 프로그램 짜는 습관을 갖는 것이 좋다.



close를 하지 않고 with문 사용하기

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


with open("c:\\newfile.txt", 'a') as file :

    file.write("\n다음에 봐요")    #들여 쓰기가 되어야 한다.

==========================================================

결과 :  

==========================================================


위와같이 close를 안해도 with 블록을 벗어나면 자동으로 close가 된다.





반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]클래스 (2)  (0) 2016.09.16
[Python]클래스 (1)  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11

파이썬 사용자 입력



자신이 만든 프로그램에 사용자가 입력 할 수 있도록 하는 방법에 대해 알아보겠다.


사용자의 입력을 받기 위해 input(), raw_input() 함수를 사용한다.


사용자 입력 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


print "숫자를 입력 하세요(1~3)"

number = input()


print "문자를 입력하세요 (a~c)"

char = raw_input()


print "number[%d] char[%c]"%(number, char)

==========================================================

결과 :  

숫자를 입력 하세요(1~3)

1

문자를 입력하세요 (a~c)

a

number[1] char[a]

==========================================================


숫자를 입력 받을 때는 input 함수를 문자 및 문자열을 입력 받을려면 raw_input을 사용 한다.


해당 부분은 어디까지나 파이썬 2.7 버전에만 해당 되는 내용이며 3.x에서는 둘다 input 함수로 가능 하다.



사용자 입력 예제2

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-


number = input("숫자를 입력 하세요(1~3)")


char = raw_input("문자를 입력하세요 (a~c)")


print "number[%d] char[%c]"%(number, char)

==========================================================

결과 :  

숫자를 입력 하세요(1~3)1

문자를 입력하세요 (a~c)a

number[1] char[a]

==========================================================


input 함수에 질문을 넣어서 질문을 따로 print를 사용하지 않아도 동작 하게 할 수 있다.



반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]클래스 (1)  (0) 2016.09.16
[Python]파일(File) 사용법  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 함수 (1)  (0) 2016.09.11

파이썬 함수 사용법




전 강좌에 이어 여러가지 함수 쓰임새를 소개 하겠다.


이번엔 여러 인자값을 받는 함수에 대해 설명 하겠다.


여러 인자를 받는 함수

더하기 함수 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def PrintAllValue(*args) :

    print "start"

    for i in args :

        print i

    print "end"

PrintAllValue(6,7)

PrintAllValue(1,2,3)


==========================================================

결과 :  

start

6

7

end

start

1

2

3

end

==========================================================


위와 같이 함수에 인자를 몇개를 줘야 할지 모를때


함수 인자 부분에 *변수명 즉 


def 함수명(*인자명) 으로 정의 하면 인자 여러 인자를 받아서 처리 할 수 있다.



함수의 인자에 초기 값을 설정하여 사용자가 함수 호출 시 인자를 넣지 않아도 동작을 

하도록 설정 할 수 있다.


인자 초기 값 설정

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def PrintValue(a=1,b=2,c=3) :

    print "a=%d,b=%d,c=%d"%(a,b,c)


PrintValue()

PrintValue(4)

PrintValue(4,5)

PrintValue(4,5,6)


==========================================================

결과 :  

a=1,b=2,c=3

a=4,b=2,c=3

a=4,b=5,c=3

a=4,b=5,c=6

==========================================================


총 함수를 4번 호출 한다.


첫번째 함수( PrintValue() )는 인자 값을 넣지 않아 함수의 초기값


def PrintValue(a=1,b=2,c=3) 이 그대로 출력 이 되었다.


우선 결과를 보면


a=1,b=2,c=3   ===========> PrintValue()        인자 값이 없어 초기에 설정된 a=1,b=2,c=3 출력

a=4,b=2,c=3   ===========> PrintValue(4)       첫 번째 인자만 넣어서 a가 4로 들어가 a=4,b=2,c=3 출력

a=4,b=5,c=3   ===========> PrintValue(4,5)

a=4,b=5,c=6   ===========> PrintValue(4,5,6)   3개의 인자값을 다 넣어서 초기에 설정된 값이 아닌 a=4,b=5,c=6 출력



퀴즈를 풀어보자

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

val = 0

def globalexam1(val) :

    val = val + 1


globalexam1(val)

print val


==========================================================

결과 :  

?? 풀어보자..

==========================================================


결과 값이 무엇일까?


힌트는 print val에 대한 출력 값이다.


....


함수 안에서 val = val + 1을 하며 val의 초기 값은 0이다. 


그럼 print 의 결과 값은 0 + 1 을 더한 값이니 1일 것이라 생각 들겟지만


정답은 0이다.


왜그럴까? 함수 밖에 변수 명과 함수 안의 변수 명이 같더라도 파이썬에서는


다른 값으로 인식한다. 


즉 함수 안에 변수 값과 함수 밖의 변수 명이 같아도 서로 다른 값이다.


val = val + 1 계산을 해도 해당 변수는 함수가 종료 되면 사라지는 변수 값이다.


그래서 함수 밖의 val 값은 어떠한 계산이 되지 않는다.


그럼 함수 밖의 값을 함수 안에서 사용하려면 어떻게 할까?



global의 사용법

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

val = 0

def globalexam3() :

    global val

    val = val + 1


val = 0

globalexam3()

print val

==========================================================

결과 :  

1

==========================================================


함수 안에서 함수 밖의 변수를 사용하고 싶으면 global이라는 예약어를 사용 하면 된다.


함수 안에서 계산 되었지만 global로 선언 되어서 출력값이 0이 아닌 1로 되었다.


이전 함수 설명 가기 ====> click

반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]파일(File) 사용법  (0) 2016.09.16
[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (2)  (0) 2016.09.11
[Python] 함수 (1)  (0) 2016.09.11
[Python] 제어문 for  (0) 2016.09.11

파이썬 함수 사용법




앞에서 예제가 조금 어려웠던 것 같다. 


쉬운 예제로 함수의 다양한 쓰임세를 알아보면서 다시 한번 함수에 대해 이해를 돕도록 하겠다.


앞선 함수 강의가 어려 웠다면 우선 이것만 기억 하자 (입력, 처리, 출력)


다시 복습하는 차원으로 더하기 함수를 만들어 보자


더하기 함수 예제

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def sum(i,j) :         #입력

    sum_val = i + j     #처리

    return sum_val    #출력


result = sum(1,2)      #함수 호출

print result

==========================================================

결과 :  

3

==========================================================


def sum(i,j) :         #입력

   def 는 함수 정의 하는 단어 프로그램에서는 예약어라고 한다.

   함수를 정의하는 예약어라고 생각 하면 된다.

   sum_val = i + j     #처리

   함수 정의 된 부분(def)라고 쓰인 라인 다음 줄에 들여쓰기를 해서 처리 부분을 구현

   return sum_val    #출력

   return이라는 예약어가 있으면 출력 부분이다. 


result = sum(1,2)      #함수 호출

1과2를 입력 값으로 주어 sum 함수에서 처리 하게 한 수 result라는 값으로 받는다.

   A. 1,2를 입력 값으로 넣는다.

   B. result 값은 함수에서 return 한 값을 받는다.



출력 값이 없는 함수

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def sum(i,j) :           #입력

    sum_val = i + j      #처리

    print sum_val


sum(1,2)     #함수 호출

==========================================================

결과 :  

3

==========================================================


함수는 입력, 처리, 출력이라더니 출력 값이 없는 함수는 무슨 소리인가?


함수의 기본 요소는 입력, 처리, 출력 이지만 때에 따라서 입력 혹은 출력, 둘다 생략이 가능 하다.


sum_val = i + j      #처리

print sum_val


처리 부분을 보면 return을 하지 않고 바로 print 를 호출하여 console 화면에 값을 나오게 한다.


sum(1,2)     #함수 호출

함수 호출 부분은 함수에 return이 없기 때문에 result = 가 사라진것을 확인 할 수 있다. 

return을 안하는데 result = 를 넣으면 에러가 난다.


인자, 출력 값이 없는 함수

==========================================================

#!/usr/bin/python

# -*- coding: utf-8 -*-

def sum() :           

    sum_val = 1 + 2       #처리

    print sum_val


sum()    #함수 호출

==========================================================

결과 :  

3

==========================================================


def sum() :  

함수 정의 부분에 입력 값이 사라져 있다.


sum_val = 1 + 2       #처리

print sum_val

입력 값이 없으니 i,j 대신 1,2를 넣었다.


sum()    #함수 호출

함수 호출할 때는 인자값 출력값 둘다 존재하지 않는다.


이전 함수 설명 가기 ====> click

다음 함수 설명 가기 ====> click


반응형

'프로그램 > Python' 카테고리의 다른 글

[Python]사용자 입력  (0) 2016.09.16
[Python] 함수 (3)  (0) 2016.09.16
[Python] 함수 (1)  (0) 2016.09.11
[Python] 제어문 for  (0) 2016.09.11
[Python] 제어문 while  (0) 2016.09.07

+ Recent posts