基本を学習20/01/26パイソン(10)

オブジェクトの永続化

  • アプリケーションシナリオ
    シリアライゼーションおよびデシリアライゼーションの:評価される現在のデータの結果を格納する、または接続されていない特定の物理的状態に進行する、将来は、特定のコンテキストに移動するために、メモリに格納されたデータを復元します。
  • テクノロジー
  1. フラットファイル
  • テキストファイル
    scores=[99,88,77,66]
    def write_score():
    	with open('datalist.txt','w',ecoding='utf8') as f:
    		f.write(string(scores))
    	print('文件写入完成...')
    def read_score:
    	with open('datalist.txt','r',ecoding='utf8') as f:
    		lst=eval(f.read())  #将传递的字符串转换为python表达式 
    	```
    	
    
  1. 酸洗い
    任意オリジナルタイプのオブジェクトが文字列のファイルまたはローカルにシリアライズすることができるPYTHON、メソッド・インターフェースのシリーズを封入
  • 文字列としてシリアライズ
    import pickle
    person={'name':'Tom','age':20}
    s=pickle.dumps(person) #将python类型序列化为字节字符串
    p=picle.loads(s) #从字符串反序列化对象(保留类型特征)
    
  • ファイルにシリアライズされたオブジェクト
    pickle.dump(person,open('pickle_db','wb'))   #.dump(obj,file)
    p=pickle.load(open('pickle_db','rb'))  #.load(file)
    
  1. 棚 - 前記複数のオブジェクトがアクセス異なるオブジェクトにフォーム辞書テーブルのキーと同様に、ファイルに格納されています

    import shelve
    scores=[99,88,77]
    student={'name':'Tom','age':20}
    db=shelve.open('shelve_student')
    db['s']=student
    db['scores']=scores
    # 调用
    db['s']
    # 删除文件
    del db['scores']
    
  2. データベース

  • アウトライン
    • タイプ
      • strの文字列
      • バイトバイト
      • バイト配列のByteArray
    • 文字エンコーディングのアーキテクチャ
      • 文字セットは:メモリに表現する文字にコードを割り当てます
      • エンコードエンコード:元バイト形式への変換文字
      • デコードデコード:プロセスの性格に基づいて、生のバイトのエンコーディング名を変換します
    • 文字列が格納されています
      • 唯一のコードは記憶媒体または中間変換に作用します
      • 常にデコードされたテキストの後にメモリに保存されています
  • 文字コード
    • 情報交換のためのASCII米国標準コード(番号/文字/句読点/改行...)
      バイト0〜127に保存されています
    • ラテン-1は
      バイトに格納された128-255
    • UTF-8保証互換性ストレージボリューム最小限に抑えながら、
      変数のバイト:0〜127シングルバイト、ダブルバイトのストレージ128から2047を、> 2047 3-4byte
    • 16 UTF
      2バイト文字格納(追加の識別として2バイト)
    • UTF-32
      4バイト
  • 内蔵機能
    • ORD( 'A')> 65は、文字コード・ポイントを取得し、
    • CHR(104)> hは現在のコードポイントに対応する文字を取得します。
    • str.encode(「コード」)特定の文字エンコーディング
    • bytes.decode(「コード」)テキスト文字を文字コードとしてデコード
    • システムのデフォルトの符号化形式を表示する)(sys.getdefaultencoding
  • 型変換
    • バイト
      マニュアルB「」主張
      ストリングコードstr.encode()
      コンストラクタ(STR、バイト「符号化文字列にコードを」)(デフォルトでは、256を超えないように1バイトのみを処理)
    • ByteArray -類似の特性のリストを使用することができる
      のByteArray(「バイト」、「コード」)
      .decodeを()文字列をデコードします
  • BOM処理バイト順マーク
    オープン( 'data.txtを'、 'R | W'、コード=「UTF-8「)
公開された10元の記事 ウォンの賞賛0 ビュー139

おすすめ

転載: blog.csdn.net/weixin_44602323/article/details/104089111