파일

|

- 파일쓰고 읽기
   f = file('f.txt', w)
   f.write(s)
   f.close()
   2번째 인자를 생략하면 기본으로 r이된다.
   
   - 라인단위로 파일쓰기
      파일객체의 반복자 이용
        f = open ('t.txt')
        for line in f:
            print line

      readline : 한번에 한줄씩
        f = open ('t.txt')
        line = f.readline()
        while line:
            line = f.readline()

      readlines : 파일전체를 라인단위로 끊어서 리스트에 저장
        f = open ('t.txt')
        for line in f.readlines():
           print line

      xreadlines : 필요할때만 읽어서 공급
        f = open ('t.txt')
        for line in f.xreadlines():
                print line
   
   - 라인단위로 파일쓰기
      f.writelines(lines)
      리스트 안에 있는 문자열을 연속해서 출력한다.

   - 자동으로 줄바꿈 하지 않기위해서 writelines함수를 사용한다.

- 파일에서 원하는 만큼의 문자 읽기
   read 메쏘드에 인수로 원하는 바이트를 써준다
   f = open ('t.txt')
   f.read(10)
     
- 임의 접근 파일
   seek(n) : 파일의 n번째로 이동
   seek(n, 1) : 현재 위치에서 n바이트 이동
   seek(n, 2) : 맨마지막 위치에서 n바이트 이동
   tell() : 현재 위치 알려줌

And

객체의복사 및 형 변환

|
- 객체의 복사
  레퍼런스복사 : 객체는 그대로 두고 객체를 참조하는 주소만 복사
  실제객체 복사 : 실제 객체를 복사한다

- copy모듈을 이용한 객체 복사
  shallow copy : 복합객체를 별도로 생성하되 내용은 원래의 레퍼런스로 채운다
  deep copy : 복합객체를 생성하고 내용을 재귀적으로 복사한다.

  import copy
  a = [1,2,3]
  b = [4,5]
  x = [a,b,100]
  y = copy.copy(x)
  얕은 카피는 a, b는 레퍼런스를 복사한다.
  깊은 카피는 a, b도 객체복사를 한다.
  y = copy.deepcopy(x)

- 형변환
  정수형 변환 : int()
  반올림하여 정수로 : round()
  버리기 : floor() # import math
  올리기 : ceil() # import math
  실수형 : float()
  롱형 : long()
  복소수 : complex (1,3)
  리스트로 : list()
  튜플로 : tuple()

- 객체를 문자열로 변환
   str() : 문자열로 변환, repr보다 보기 좋게 변환해준다
   repr() : 문자열로 변환
   어떤 객체를 문자열로 변환한후 나중에 문자열을 다시 객체로 변환
      a = {1: "one", 2:"two"}
      b = repr (a)
      c = eval (b)
      print c -> {2:'two', 1:'one'}

- 문자열 요소를 가지는 튜플, 리스트를 문자열로 변환
   s = 'python is'
   l = s.split()
   ' '.join(l)

- 사전에서 리스트로 변환
   d.keys(), d.values(), d.items()

- 리스트에서 사전으로 변환
   keys, values
   L=zip (keys, values)

- 문자변환
   chr(97) -> 'a'
   ord('a') -> 97

- 임이의 진수를 10진수로
   int ('64', 10) -> 100
   int ('144', 8) -> 100

- 10진수에서 8, 16진수로
   hex(100) -> 10진수 100을 16진수 문자열로 '0x64'
   oct(100) -> 10진수 100을 8진수 문자열로 '0144'
And

집합자료형

|
- set, frozenset은 변겨불가능한 값들을 저장하는 순서가 없는 집합적 자료형이다
  순서가 없기때문에 슬라이싱, sort등을 사용할 수 없다
  예) set()      # 빈 set객체생성
       set([1,2,3,4,5,5])  # set([1,2,3,4,5]) 가 된다. 중복된것은 제거된다
       set('abbc')          # set(['a','b','c']) 가 된다.
       s.issubset(t)        # s가 t의 부분집합인가
       s.isuperset(t)       # s가 t의 포함집합인가
       s.intersection(t)    # s와 t의 교집합
       s.difference(t)      # s와 t의 차집합  s-t
       s.symmetric_difference(t)  # s와 t의 배타집합 s ^ t
       list(s)
       tuple(s)
       s.update(t)           # s에 t를 업데이트한다
       
And