Day10 파이썬 연구 노트 및주의의 요점

 제 1 부 : 파이썬 연구 노트

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

12. 객체 지속성

12.1. 플랫 파일

12.1.1. 텍스트 파일

  • 텍스트 파일은 영속 객체들을 저장됩니다
  • 파이썬을 같은 문을 실행할 때 수 있도록, 파이썬 표현식으로 건너 문자열 변환
1  # 文本文件存储持久化对象
2  
3 점수 = [88,99,77,55 ]
 4  
5  데프 write_scores () :
 6      연 상태 ( ' data_list.txt ' , ' w ' 인코딩 = " UTF- ' )로서 F :
 7          f.write (STR (점수))
 8          인쇄 ( ' 완료 파일 쓰기 ... ' )
 (9)  
(10)  데프 read_scores () :
 11      열고 (와 ' data_list.txt ' , ' R' , 인코딩 = ' UTF8 ' F AS) :
 (12)는          LST = 평가 후면 (도달, f.read ())     # 파이썬 표현식으로 문자열을 통해 패스, 파이썬으로 동일한 문을 실행할 수 있도록 
(13)가  
14          LST [0] 99 =
 (15)          이 전단 (LST)
 16  
(17).  IF  __name__ == ' __main__ ' :
 18 인      #의 이 본 발 write_scores () # 먼저 실행 파일 작성 data_list.txt 
19.      read_scores ()를

12.2.pickle

12.2.1.pickle 모듈

  • 직렬화 된 비트 스트링
    • .dumps는 (OBJ) 문자열로 표적 서열
    • .loads (들) : 모발 문자열 변환 표적 서열
(1 개)  수입 피클
  사람 = { ' 이름 ' : ' ' , ' 나이 ' : 20 }
 3 의의 =의 pickle.dumps (사람)
 4 개

실행 결과 : B '\ X80 \ X03} Q의 \의 x00에서 (X \ X04 \ x00에서 \ x00부터 \ x00nameq \ x01X \ X03 \ x00에서 \ x00부터 \ x00Tomq \ x02X \ X03 \ x00에서 \ x00부터 \ x00ageq \ x03K \ x14u.'

1 p = pickle.loads은
 2

실행 결과 : { '이름': '톰', '나이': 20}

  • 파일에 직렬화 된 객체
    • .dump (OBJ, 파일)
    • .load (파일)
 사람 = { ' 이름 ' : ' ' , ' 나이 ' : 20 }
 2 pickle.dump (사람, 개방 ( ' pickle.db ' , ' WB ' ))
 3 P = pickle.load (오픈 ( ' 피클. DB ' , ' RB ' ))
 4 (P)

실행 결과 : 아웃 [14] : { '이름': '톰', '나이': 20}

12.3.shelve

12.3.1.shelve

문서의 여러 개체의 존재

  • .open ( 'dbfile')
  • .닫기()
  • DB [ '키'= OBJ
  • LEN (dB)
  • 델 DB [ '키']
. (1)  #가 직렬화 정의 클래스를 예 선반 
(2)  
(3).  오기 선반
 4.  
5.  클래스 학생 :
 . 6      DEF  __init__ (자기 이름, 나이)
 . 7          self.name = 이름
 . 8          self.age = 나이
 . 9  
(10)  
. 11      DEF의  __str__ (자기)
 (12)이          복귀 self.name
 13 인  
14  DEF의 write_shelve ()
 15          S = 학생 ( ' ' , 20이다 )
 16          DB shelve.open = ( 'shelve_student_db ' )
 17          데시벨 [ ' S ' = S
 18          db.close ()
 19  
20  DEF (read_shelve) :
 21      dB = shelve.open ( ' shelve_student_db ' )
 22      번째의 DB = [ ' S ' ]
 23      인쇄 (일)
 24      인쇄 (st.name)
 25      인쇄 (st.age)
 26      db.close ()
 27  
28  
29  경우  __name__ == ' __main__' :
 30      #의 . write_shelve ()을 shelve_student_db 있도록 # 먼저이 실행 * 파일을 만들 수 있습니다 
(31)      read_shelve을 ()

12.4. 데이터베이스

12.5.ORM

13. 문자열

13.1. 개요

13.1.1 유형

  • STR 문자열
  • 바이트 바이트
  • 바이트 배열 된 ByteArray

13.1.2. 문자 인코딩 아키텍처

  • 문자 집합 : 메모리에 표현하는 문자 코드를 할당
  • 인코딩 인코딩 : 원래 바이트 형태로 변환 문자
  • 디코딩 디코딩은 : 원시 바이트 변환 부호화 이름 공정의 특성에 기초
  • 문자 인코딩 아키텍처 다이어그램 :

  

13.1.3. 문자열이 저장된다

  • 인코딩 파일 만 저장 매체 또는 중간 변환에 작용
  • 항상 디코딩 된 텍스트 후 메모리에 저장

13.2. 문자 인코딩

13.2.1.ASCII

  • BYTE 형 127에 저장된
  • BYTE 형 128-255에 저장
  • 변수 바이트

13.2.2.latin-1

13.2.3.UTF-8

• 127 단일 바이트

• 128-2047 더블 바이트 저장

•> 2047 3-4 바이트

• 128-255 당 바이트를 사용하여

13.2.4.UTF 16

  • 2 바이트의 저장 문자 (식별 플러스 2 바이트)
  • 4 바이트

13.2.5.UTF-32

13.3. 내장 함수

13.3.1.ord ()는 문자 코드 포인트를 가져옵니다

13.3.2.chr ()는 점에 대응하는 문자 코드를 취득

13.3.3.str.encode 특정 문자 인코딩 ( "코딩")

13.3.4.bytes.decode 문자 부호화 및 복호화 텍스트 문자 ( "코딩")

13.3.5.encode 디코드 예

. (1) S1 = ' ABCD ' 
2 s1.encode ( ' 아스키 ' )
 . 3  
. 4 S2 = ' Youpin 클래스 ' 
. 5 s2.encode ( " UTF-. 8 ' )
 . 6  
. 7 B1 = B ' \ XE4 \ XBC \ X98 \ xe5 \ X93 \ X81 \ xe8 \ XAF \ XBE \ xe5 XA0 \ X82 \ " 
. 8  
. 9 b1.decode ( " UTF-8. ' ->) ' 우수한 제품 클래스 ' 
10 b1.decode ( " UTF-16 " ) -> 왜곡 참조
  • 참고 : 인코딩 및 디코딩은 기본 인코딩은 UTF-8입니다
1  임포트 SYS
 2  sys.getdefaultencoding ()
 3  
(4) -> UTF-8

문서 형 부호화 처리시 13.3.6. 예를 공식화

1 오픈 ( ' data.txt로 ' , ' w ' 인코딩 = " UTF-8 " )에 .write ( ' 优品课堂' )
 2 오픈 ( ' data.txt로 ' , ' R ' , 인코딩 = " UTF-8 " ).독서()

13.4 형 변환

13.4.1.bytes

  • 수동 규격 B ''
  • 문자열 코드 str.encode ()
  • 생성자 바이트 ()
  • 그것은 현장의 변경을 지원하지 않습니다

13.4.2.bytearray

  • 이 ByteArray ( '문자', '코딩')
  • .decode ()는 문자열을 디코딩
  • 지원 현장 변화

13.5.BOM (바이트 순서 표시) 과정

(인코딩 = "UTF-8-SIG '/ R w'data.txt로 ') 13.5.1.open

추천

출처www.cnblogs.com/hemin96/p/11423149.html