Day10 Pythonの研究ノート&注意のキーポイント

 パート1:Pythonの研究ノート

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

12.オブジェクトの永続性

12.1。フラットファイル

12.1.1。テキストファイル

  • テキストファイルは永続オブジェクトを格納しています
  • あなたは、Pythonを同じ文を実行したときにできるように、あなたはPythonの式に渡す文字列を変換します
1  文本文件存储持久化对象
2  
3スコア= [88,99,77,55 ]
 4  
5  デフwrite_scores():
 6      オープンと(' data_list.txt '' W '、エンコード= ' UTF8 ' )Fとして:
 7          f.write(STR(スコア))
 8          プリント' 完了ファイル書き込み...... ' 9  
10  DEF read_scores():
 11      オープン(と' data_list.txt '' R'エンコード= ' UTF-8 " F AS):
 12は          LST =のeval(達し、f.read())    Pythonの式に文字列の上にパスは、Pythonと同じ文を実行できるように、
13で 
14          LST [0] = 99
 15          印刷(LST)
 16  
17。 IF  __name__ == ' __main__ ' 18である     #1 write_scores()#まずRUNこれまで作成し、ファイルをdata_list.txt 
19。      read_scores()

12.2.pickle

12.2.1.pickleモジュール

  • 直列化されたビット列
    • .dumps(OBJ):標的配列文字列に
    • .loads(S):髪の文字列変換標的配列
1つの インポートピクルス
 2人= { ' 名前'' トム'' 年齢':20 }
 3のS =の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(S)
 2 P

実行結果:{ '名前': 'トム'、 '年齢':20}

  • ファイルにシリアライズされたオブジェクト
    • .dump(OBJ、ファイル)
    • .LOAD(ファイル)
1人= { ' 名前'' トム'' 年齢':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')
  • 。閉じる()
  • デシベル[ 'キー'] = OBJ
  • LEN(デシベル)
  • デルデシベル[「キー」]
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      デシベル= shelve.open(' shelve_student_db ' 22      番目の=デシベル[ ' S ' ]
 23      プリント(ST)
 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

  • バイト0〜127に保存されています
  • バイト128から255に保存されています
  • 可変バイト

13.2.2.latin-1

13.2.3.UTF-8

•0〜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(' ASCII ' 。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