2014. 5. 23. 15:49

이 문서는 파이썬 2점대를 기준으로 작성되었습니다.

7 사전 집합

[사전 객체 생성 방법 - zip사용]

key = ['one', 'two', 'three'] #시퀀스 자료형이면 ok

values = (1,2,3)

zip(keys, values) #zip 자료를 순서대로 묶어준다. 사전의 items()출력과 동일

dict(zip(keys, values)) #{'three':3, 'two':2, 'one':1}

 

[사전 객체의 메소드]

D.keys() #사전에서 키들을 리스트로 리턴

D.values() #값들을 리스트로 리턴

D.items() #(key, value)리스트 리턴

key in D #멤버십 테스트. D key 가지고 잇으면 True

D.clear( ) #사전 D 모든 아이템 삭제

D.copy() #사전 복사(Shallow copy)

D.get(key [,x]) #값이 존재하면 D[key], 아니면 x 리턴

D.setdefault(key [,x]) #get 같으나 값이 존재하지 않을 값을 설정(D[key] = x)

D.update(b) #for k in b.keys(): D[k] = b[k]

D.popitem() # (, ) 튜플을 리턴하고 사전에서 항목을 제거한다.

D.pop(key) #key항목의 값을 리턴하고 사전에서 제거한다.

 

[집합자료형_set, frozenset 공통함수]t #순서 없는 자료형

len(s) #원소의

x in s #x 집합 s 원소인가?

x not in s #x 집합 s 원소가 아닌가?

s.issubset(t) #s t 부분집합?

s.issuperset(t) #s t 포함집합?

s.union(t) s | t #새로운 s t 합집합

s.intersection(t) #새로운 s t 교집합 s & t

s.difference(t) #새로운 s t 차집합 s - t

s.symmetric_difference(t) #새로운 s t 배타집합 s ^ t

s.copy() #집합 s 얕은 복사

list(a) #시퀀스 (리스트 형으로 변환)

tuple(a) #튜플으로 변환

 

[집합자료형_set 자료형만 가능한 연산]

s.update(t) #s t 합집합을 s 저장

s.intersection_update(t) #s t 교집합을 s 저장

s.difference_update(t) #s t 차집합을 s 저장

s.symmetric_difference_update(t) #s t 배타집합을 s 저장

s.add(x) #원소 x s 추가

s.remove(x) #원소 x s에서 제거: 없으면 Key Error 예외 발생

s.discard(x) #원소 x 있다면 s에서 제거

s.pop() #s에서 임의의 원소를 하나 리턴하고 집합에서는 제거; 집합이면 KeyError 예외 발생

s.clear() #집합 s 모든 원소 삭제


 ※출처 : 프리렉 파이썬_이강성 저 



[ 참고 ] 파이썬 정리 포스팅들 

--------------------------------------------------

[파이썬] python 문자열 함수정리


[파이썬] python 리스트 함수정리


[파이썬] python 튜플 함수정리




[파이썬] python 정규식 정리

-------------------------------------------------------------------------------

Posted by Triany
2014. 5. 23. 15:38

이 문서는 파이썬 2점대를 기준으로 작성되었습니다.

6 튜플 

 

L = list(T) #tuple->list

T = tuple(L) #list->tuple

 

[경로명 다루기 - os.path]

>>>import os

p = os.path.abspath('t.py') #상대 경로 -> 절대경로

os.path.exists(p) #파일의 존재여부

os.path.getsize(p) #파일 크기

os.path.split(p) #(head, tail) 분리. (디렉토리명, 파일명)

os.path.join('c:\\work', 't.hwp') #디렉토리와 파일명 결합

os.path.normpath('c:\\work\\.\\t.hwp') #파일명 정규화

os.path.splitext('c:\\work\\t.hwp') #('c:\\work\\t', '.hwp')

os.linesep #파일의 라인분리문자 ( 윈도우:'\r\n', 유닉스:'\n', 맥킨토시 : '\r')

os.sep #경로명에서 요소 분리 (윈도우 :'\', 유닉스:'/', 매킨토시 : ':')

os.pathsep #경로명과 경로명을 구분해 주는 문자 (윈도우 ';' 유닉스 ':')

os.curdir #현재 디렉토리를 나타내는 문자, (윈도우, 유닉스 : '.' , 매킨토시 : ':')

os.pardir #부모 디렉토리를 나타내는 문자 (윈도우 유닉스 : '..", 매킨토시 '::')

 

[URL 다루기]

import urlparse

urlparse(urlstring[, default_scheme[, allow_fragments]]) #url 분리하여 튜플 리턴

u = urlparse.urlparse(a)

#(addressing scheme, network location, path, parameters, query, fragment identifier)

urlparse.unurlparse(u) #튜플로 성분들을 하나의 url 역변환

urljoin(base, url[, allow_fragments]) #기본 URL 상대 URL 연결하여 절대 URL 생성


※출처 : 프리렉 파이썬_이강성 저 


[ 참고 ] 파이썬 정리 포스팅들 

--------------------------------------------------

[파이썬] python 문자열 함수정리


[파이썬] python 리스트 함수정리


[파이썬] python 튜플 함수정리




[파이썬] python 정규식 정리

-------------------------------------------------------------------------------

Posted by Triany
2014. 5. 23. 15:08

이 문서는 파이썬 2점대를 기준으로 작성되었습니다.


5 리스트

 

del a[0] #리스트 삭제

 

[리스트 메소드]

메소드

설명

append

자료를 리스트 끝에 추가(혹은 스택의 push)

s.append(5)

insert

자료를 지정된 위치에 삽입 insert('index', 'value')

s.insert(3,4)

index

요소 검색(Search) index('value')

s.index(3)

count

요소 개수 알아내기 count('value')

s.count(2)

sort

리스트 정렬

s.sort()

reverse

자료순서 바꾸기

s.reverse()

remove

지정 자료 삭제 remove('value')

s.remove(2)

pop

리스트의 지정된 하나를 읽어 내고 삭제(스택의 Pop)

s.pop()

extend

리스트를 추가

s.extend([60,70])

 

[스택]

s.append(60) #push

s.pop() #pop

 

[]

s.append(60) #inqueue

s.pop(0) #dequeue

 

cmp : 내장함수를 이용하여 정렬할 순서를 결정한다.

cmp(a, b)

cmp (a, b) 조건

결과

a < b

-1

a = b

0

a > b

1

            

[역순정렬]

L.sort(reverse=True)

L.sort() #리턴되는 값은 없다. L 자체가 sorting

newList = sorted(L) #L 변경내용이 없고, 새로운 리스트가 리턴

 

L.reverse() #순서 뒤집기

 

[명령행 인수 얻기]

import sys

print sys.argv #인수들의 리스트

 

[명령행 옵션 처리]

import getopt

optlist, args = getopt.getopt(인수리스트, 옵션문자) # optlist('-a', '') # args # ['spam', 'and', 'ham']

옵션문자에 : 사용되면 옵션에 추가 인수 받아들임

 

[array 모듈] #표준모듈

타입 코드

C 타입

최소 바이트

'c'

Character

1

'b'

Signed integer

1

'B'

Unsigned integer

1

'h'

Signed integer

2

'H'

Unsigned integer

2

'i'

Signed integer

2

'I'

Unsigned integer

2

'l'

Signed integer

4

'L'

Unsigned integer

4

'f'

Floating poinnt

4

'd'

Floating point

8

배열만들기 함수 사용

array(typecode [, initializer]) # 배열 생성

 

[디렉토리 파일 목록 얻기]

? : 임의의 문자 1개와 매칭

* : 임의 개수(0 포함) 모든 문자와 매칭

[...] : 괄호 안의 임의의 1 문자와 매칭

>>> import glob

>>> glob.glob('./[0-9].*')

>>> glob.glob('*.gif')

 

[파일의 추가 정보 알아내기]

isfile(path) - path 일반파일이면 True 리턴

isdir(path) - path 디렉토리(폴더)이면 True 리턴

islink(path) - path 심볼릭 링크이면 True 리턴

ismount(path) - path 마운트 포인트이면 True 리턴(unix)

axists(path) - path 존재하면 True 리턴

 

>>> import glob

>>> import os

>>> os.path.getsize('t.py') #파일의 크기를 얻는다.

 

>>> import time

>>> t = os.path.getatime('t.py') #파일의 최근 접근 시간을 얻음

>>> t #리턴되는 숫자는, 기준 시간(1970 1 1 자정)부터 현재까지 경과한 .

 

>>> time.ctime(t) # 문자열 시간으로 변환

>>> time.ctime(os.path.getmtime('t.py')) #파일의 수정(modified)시간

 

※출처 : 프리렉 파이썬_이강성 저 

 


[ 참고 ] 파이썬 정리 포스팅들 

--------------------------------------------------

[파이썬] python 문자열 함수정리


[파이썬] python 리스트 함수정리


[파이썬] python 튜플 함수정리




[파이썬] python 정규식 정리

-------------------------------------------------------------------------------

Posted by Triany
2014. 5. 23. 15:06

이 문서는 파이썬 2점대를 기준으로 작성되었습니다.

4 문자열

 

[문자열 대치 기능]

>>>import string

t = string.Template('$page: $title')

t.substitute({'page':2, 'title' : 'The Best of Times'})

t.safe_substitute({'page':2}) #누락된 key 대해 Error 없음.

 

[문자열 메소드 - 1). 소문자의 변환]

s.upper() #대문자로 변환

s.upper().lower() #소문자로 변환

s.swapcase() # 대문자 -> 소문자, 소문자 -> 대문자

s.capitalize() # 첫문자를 대문자로

s.title() #단어의 첫문자를을 대문자로

 

[문자열 메소드 - 2)검색]

s.count('like') #문자열 s에서 'like'라는 문자열이 발생한 횟수 리턴

s.find('like') #문자열 s에서 'like' 옵셋 리턴.(검색), 찾는 문자열 없을 경우 -1리턴

s.find('like', 3) #문자열 3 위치부터 검색

s.rfind('like') #find 같지만 문자열 s 뒤족부터 탐색

s.index('like') #문자열 s에서 'like' 옵셋 리턴.(검색), 찾는 문자열 없을 경우 예외발생

s.rindex('like') #index 같지만 문자열 s 뒤족부터 탐색

s.startswitch('i like') #i like 시작하는 문자열인가? 리턴 : True, false

s.endwith('swimming') #swimming으로 끝나는 문자열인가? 리턴 : True, false

s.startswitch('i like', 7) #7번째 문자열이 i like 시작하는 문자열인가? 리턴 : True, false

s.endwith('swimming', 0, 26) #0부터 26번째 위치 사이의 문자열이 swimming으로 끝나는가?리턴 : True, false

 

[문자열 메소드 - 3)편집, 치환]

s.strip() #좌우 공백을 없앰

s.rstrip() #오른쪽 공백을 없앰

s.lstrip() #왼쪽 공백을 없앰

s.strip('<>') #'<>' 없앰

s.replace('spam', 'spam and egg') #'spam' 'spam and egg' 바꿈

 

[문자열 메소드 - 4)분리, 결합]

s.split() #공백으로 분리

s.split('and') #'and' 기준으로 분리

':'.join(s) #':'문자로 결합.

print '\n'.join(t) # 바꾸기로 결합

lines.splitlines() #라인 단위로 분리

s.split(':', 2) #두번만 분리

s.rsplit(':', 1) #오른쪽부터, 한번만 분리

 

[문자열 메소드 - 5)정렬]

s.center(60) #전체 60 문자의 가운데에 맞춘다.

s.ljust(60) #왼쪽에 맞춘다.

s.rjust(60)          #오른쪽에 맞춘다.

             #center, ljust, rjust 메소드는 채워질 문자를 선택할 있다.

s.center(60,'-') #공백 대신 '-'문자를 채운다.

s.ljust(60,'-')

s.rjust(60,'-')    

'1\tand\t2'.expandtabs() # 문자 -> 8 공백으로

'1\tand\t2'.expandtabs(4) # 문자 -> 4 공백으로

 

[문자열 메소드 - 6)구성 문자열 판별]

s.isdigit() # 숫자여부 파악 , 리턴 : True, False

s.isalpha() # 영문자여부 파악 , 리턴 : True, False

s.isalnum() # 숫자 혹은 영문자 여부 파악 , 리턴 : True, False

s.islower() # 소문자여부 파악 , 리턴 : True, False

s.isupper() # 대문자여부 파악 , 리턴 : True, False

s.isspace() # 공백 문자 여부 파악, 리턴 : True, False

s.istitle() # 제문 문자열 여부 파악, 리턴 : True, False

 

[문자열 메소드 - 7)채우기 자리 맞추기 문자열]

s.zfill(5) # 0으로 채워진다.

# ex)

>>>s = '123'

>>>s.zfill(5)

'00123'

>>>'goofy'.zfill(6)

'0goofy'

 

[string 모듈]

# 상수 정의. 임의의 문자가 어떤 구룹에 속해있는지 판별할때 유용

string.digits #'0123456789'

string.octdigits #'01234567'

string.hexdigits #'0123456789abcdefABCDEF'

string.letters #'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

string.lowercase #'abcdefghijklmnopqrstuvwxyz'

string.uppercase #'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

string.puctuation #'!"#$%\ .....'

string.printable #인쇄가능한 문자들 모두

string.whitespace #공백 문자 모두(8진수 표현)

#ex)

>>> x = 'a'

>>> x in string.uppercase

False

 

[유니코드]

u'String' #유니코드 표현 문자열

unicode('한글') #유니코드 문자열로 변환

[포맷 문자열]

포맷 문자열

설명

%s

문자열 혹은 임의의 객체를 문자열로 변환한다. (str() 함수를 이용한다.)

%r

문자열 혹은 임의의 객체를 문자열로 변환한다. (repr() 함수를 이용한다.)

%c

길이 1 문자 %c, % A

%d

10 정수

%i

정수(%d와의 차이가 없다)

%u

부호 없는 정수 %u%-12 결과는 4294967284양수는 그대로,

음수는 양수적 해석을 적용한다.

%o

8진수 %o % 12 결과는 14

%x

16진수 %x %12 결과는 c

%X

16진수 대문자 %X %12 결과는 C

%e

부동 소수점(실수) 지수 형태로 표현. 유효 숫자는 7자리로 표현한다.

%e %123.45678 결과는 1.234568e+002

%E

%e 동일하다. , 지수 표현을 대문자 E 한다.

%f

부동 소수점(실수) 표현 %f % 123.45678 결과는 123.456780

%g

부동 소수점을 편의에 따라서 소수점 형식 혹은 지수 형식으로 변환한다.

6자리의 유효 숫자로 표현한다.

%G

%g 같다. , 지수 표현을 대문자 E 한다.


※출처 : 프리렉 파이썬_이강성 저 


[ 참고 ] 파이썬 정리 포스팅들 

--------------------------------------------------

[파이썬] python 문자열 함수정리


[파이썬] python 리스트 함수정리


[파이썬] python 튜플 함수정리




[파이썬] python 정규식 정리

-------------------------------------------------------------------------------

'Language > python' 카테고리의 다른 글

[파이썬] python 튜플 함수정리  (0) 2014.05.23
[파이썬] python 리스트  (0) 2014.05.23
콘솔에 print 시, 커서위치 맨 앞으로 위치시키기 "\r"  (0) 2014.05.20
sqllite3 _ in python  (0) 2012.08.01
[python] 엑셀작업  (1) 2012.05.10
Posted by Triany
2014. 5. 20. 11:31

"\r" : 줄의 맨 처음의 의미


왜 필요한지 모르겠는데, 친구가 python에서 콘솔에 계속 덮어쓰는 식으로 구현할 수 있는지 물어봐서 찾아보다가 포스팅을 하게 된다. \r을 이용한 예제는 어디선가 참조하였고 밑의 예제는 직접실습해서 꾸려보았다.

c언어에서도 \r을 이용하여 printf문에서 덮어쓰듯?? 표현할 수 있다는데

파이썬도 \r을 이용해서 구현하는 것은 동일한 것으로 보인다.

그럼 아래 예제를 살펴보자


1. \r을 이용한 예제 1

>>> a='\rabc'

>>> a

'\rabc'

>>> print a

abc


\r을 이용하면 문자를 줄의 맨 처음에 위치 시킬 수 있다.

이 예제를 응용하면,, 


2. for문으로 print시 덮어쓰기!!

>>> abc = ['apple', 'banana', 'orange', 'ear']

>>> for i in abc:

...     print '\r'+i,

...

earnge


print 시 ,(콤마)를 쓰면 줄을 바꾸지 않고 띄어쓰기를 해서 인식하게 된다.

콘솔의 맨 앞줄에 계속 덮어쓰기 식으로 이용하기 위해서는 줄이 바뀌면 안되니까

콤마를 이용해주자.


만약 콤마를 쓰지 않는다면 이 예제는 도로묵이된다.

>>> for i in abc:

...     print '\r'+i

...

apple

banana

orange

ear



참고참고


'Language > python' 카테고리의 다른 글

[파이썬] python 튜플 함수정리  (0) 2014.05.23
[파이썬] python 리스트  (0) 2014.05.23
[파이썬] python 문자열 함수정리  (0) 2014.05.23
sqllite3 _ in python  (0) 2012.08.01
[python] 엑셀작업  (1) 2012.05.10
Posted by Triany
2012. 8. 1. 16:21
import sqlite3
conn = sqlite3.connect('example.db')

c = conn.cursor()

# Create table
c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')

# Insert a row of data
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

# Save (commit) the changes
conn.commit()

# We can also close the cursor if we are done with it
c.close()

 

select 옵션( ?  or %s )

# Never do this -- insecure!
symbol = 'RHAT'
c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)

# Do this instead
t = (symbol,)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)

# cur.execute("insert into people values (?, ?)", (who, age))
print c.fetchone()

# Larger example that inserts many records at a time
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
                   ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
                   ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
                 ]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)

 

c.execute   or fetchall()  <-- return  matching rows.

for row in c.execute('SELECT * FROM stocks ORDER BY price'):
        print row

(u'2006-01-05', u'BUY', u'RHAT', 100, 35.14)
(u'2006-03-28', u'BUY', u'IBM', 1000, 45.0)
(u'2006-04-06', u'SELL', u'IBM', 500, 53.0)
(u'2006-04-05', u'BUY', u'MSFT', 1000, 72.0)

 

Connection.create_function(name, num_params, func)

Creates a user-defined function that you can later use from within SQL statements under the function name name. num_params is the number of parameters the function accepts, and func is a Python callable that is called as the SQL function.

The function can return any of the types supported by SQLite: unicode, str, int, long, float, buffer and None.

import sqlite3
import md5

def md5sum(t):
    return md5.md5(t).hexdigest()

con = sqlite3.connect(":memory:")
con.create_function("md5", 1, md5sum)
cur = con.cursor()
cur.execute("select md5(?)", ("foo",))
print cur.fetchone()[0]

 

출처 : http://docs.python.org/library/sqlite3.html

디비구축.zip

Posted by Triany
2012. 5. 10. 17:57

새로운 엑셀파일 생성

import xlwt

wbk = xlwt.Workbook()
sheet = wbk.add_sheet('2012.05', cell_overwrite_ok=True)   #덮어쓰기 가능 설정
sheet.write(0,0,'date')
sheet.write(0,1,"count")
sheet.write(0,2,"size")       #시트에 데이터 기록

wbk.save('test.xls')          #데이터 저장(저장과 동시에 엑셀파일 생성)

xlwt.Workbook() : excel workbook 만들기.

  • wbk.add_sheet("")  : sheet 추가.
  •                                         - cell_overwrite_ok=True 설정을 해 두면 덮어쓰기 가능
  • sheet.write(행, 열, data)로 값 기록
  • wbk.save("file name")으로 file 저장!
  •  

    기존 엑셀 파일로 작업

    (xlrd 모듈 필요)

    다운경로 : http://pypi.python.org/pypi/xlrd/0.7.1

    import xlrd

    xls = xlrd.open_workbook('test.xls',formatting_info=True)  #엑셀파일 open
    sheet_01 = xls.sheet_by_index(0)  # 0번째 시트 정보 가져옴 
    print r_sheet

    엑셀 전체 시트수 : xls.nsheets

    시트 불러오기

    xls.sheet_by_index(0) #index로 불러오기

    xls.sheet_by_name(u'Sheet1') #이름으로 불러오기

    A시트에 대해서

    sheet_01.name : 시트명

    sheet_01.nrows : 시트 행 수

    sheet_01.ncols : 시트 열 수

    firstColumn = sheet_01.col_values(0) #0번째 컬럼 전체 읽어옴

    sheet_01.cell_value(rowx=0, colx = 2) : 1행 C열의 값 반환

    first_column = sh.col_values(0)

     

    엑셀에 한글 입력하기

    book = xlwt.Workbook(encoding='utf-8')
    sheet = book.add_sheet('첫번째시트')
    sheet.write(0, 0, '한글')
    book.save('unicode0.xls')

     

    고급 엑셀 기능 사용 관련 예제 사이트

    https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/examples/

     

    Posted by Triany