目次
" > 1. はじめに
" > 2. 永続データ
" >1. データの永続性
ホームページ バックエンド開発 Python チュートリアル シェルフモジュールの基本的な紹介

シェルフモジュールの基本的な紹介

Jul 23, 2017 am 10:04 AM
モジュール

shelve

shelve は、open() という 1 つの関数だけを持ち、ファイル名であるシェルフ オブジェクトを返します。それを使用します。 保存するには、単純に辞書として扱うことができます。保存が完了したら、close 関数を呼び出して閉じます。

これには、次のような潜在的な小さな問題があります:

[python] view plain copy
>>> import shelve  
>>> s = shelve.open('test.dat')  
>>> s['x'] = ['a', 'b', 'c']  
>>> s['x'].append('d')  
>>> s['x']  
['a', 'b', 'c']
ログイン後にコピー

保存された d はどこに行くのでしょうか?毛織物?実際、これは非常に単純です。d は ['a', 'b', 'c'] を x に保存します。s['x'] は次のようになります。単なるコピーであり、コピーを書き戻していないため、 s['x'] を再度読み取ると、ソースからコピーが読み取られるため、新しく変更されたコンテンツはコピーに表示されません。 1 つ目は、以下に示すように、キャッシュされた変数を使用する方法です

[python] view plain copy
>>> temp = s['x']  
>>> temp.append('d')  
>>> s['x'] = temp  
>>> s['x']  
['a', 'b', 'c', 'd']
ログイン後にコピー

Python2.4 には、open メソッドの writeback パラメータの値を True に割り当てる別の方法があります。この場合、開いた後に、すべてのコンテンツはキャッシュに保存されます。閉じると、すべてのコンテンツが一度にハードディスクに書き込まれます。データ量がそれほど多くない場合は、これをお勧めします。


1. はじめに

python3 では、json または pickle を使用してデータを永続化します。複数回ダンプできますが、以前のデータは後でダンプされたデータによって上書きされるため、ロードできるのは 1 回だけです。 。ダンプとロードを複数回実装したい場合は、shelve モジュールを使用できます。 shelve モジュールは、pickle でサポートされているすべてのデータ型を永続化できます。

2. 永続データ

1. データの永続性

import shelve
import datetime

info = {'name': 'bigberg', 'age': 22}
name = ['Apoll', 'Zous', 'Luna']
t = datetime.datetime.now()

with shelve.open('shelve.txt') as f:
    f['name'] = name    # 持久化列表
    f['info'] = info         # 持久化字典 
    f['time'] = t            # 持久化时间类型
ログイン後にコピー

コードを実行すると、shelve.txt.bak、shelve.txt.dat、shelve.txt の 3 つのファイルが生成されます。 .dir。

  • shelve.txt.bakの内容

'info', (512, 45)
'name', (0, 42)
'time', (1024, 44)
ログイン後にコピー
ログイン後にコピー
  • shelve.txt.datの内容

�]q (X   ApollqX   ZousqX   Lunaqe.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      �}q (X   ageqKX   nameqX   bigbergqu.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   �cdatetime
datetime
q C
�"
2�q�qRq.
ログイン後にコピー
    2の内容 、データ読み込み
  • データの取得にはgetを使用します
'info', (512, 45)
'name', (0, 42)
'time', (1024, 44)
ログイン後にコピー
ログイン後にコピー

1. シェルブ モジュールは、ファイルを通じてメモリ データを永続化する単純なキーと値のモジュールです。

2. shelve モジュールは、pickle でサポートされている任意の Python データ形式を保持できます。

3. Shelve は pickle モジュールのパッケージです。

4. シェルブモジュールはダンプとロードを複数回行うことができます。

以上がシェルフモジュールの基本的な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WLAN拡張モジュールが停止しました[修正] WLAN拡張モジュールが停止しました[修正] Feb 19, 2024 pm 02:18 PM

Windows コンピュータの WLAN 拡張モジュールに問題がある場合、インターネットから切断される可能性があります。この状況はイライラすることがよくありますが、幸いなことに、この記事では、この問題を解決し、ワイヤレス接続を再び正常に動作させるのに役立ついくつかの簡単な提案を提供します。 WLAN 拡張モジュールが停止しました。 WLAN 拡張モジュールが Windows コンピュータで動作を停止した場合は、次の提案に従って修正してください。 ネットワークとインターネットのトラブルシューティング ツールを実行して、ワイヤレス ネットワーク接続を無効にし、再度有効にします。 WLAN 自動構成サービスを再起動します。 電源オプションを変更します。 変更します。詳細な電源設定 ネットワーク アダプター ドライバーを再インストールする いくつかのネットワーク コマンドを実行する それでは、詳しく見てみましょう

WLAN 拡張モジュールを開始できません WLAN 拡張モジュールを開始できません Feb 19, 2024 pm 05:09 PM

この記事では、無線 LAN 拡張モジュールが起動できないことを示すイベント ID10000 を解決する方法について詳しく説明します。このエラーは、Windows 11/10 PC のイベント ログに表示される場合があります。 WLAN 拡張モジュールは、独立系ハードウェア ベンダー (IHV) および独立系ソフトウェア ベンダー (ISV) がカスタマイズされたワイヤレス ネットワーク機能をユーザーに提供できるようにする Windows のコンポーネントです。 Windows のデフォルト機能を追加することで、ネイティブ Windows ネットワーク コンポーネントの機能を拡張します。 WLAN 拡張モジュールは、オペレーティング システムがネットワーク コンポーネントをロードするときに、初期化の一部として開始されます。無線 LAN 拡張モジュールに問題が発生して起動できない場合、イベント ビューアのログにエラー メッセージが表示されることがあります。

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール Apr 10, 2023 pm 02:56 PM

1. sys モジュールの紹介 前に紹介した os モジュールは主にオペレーティング システム用ですが、この記事の sys モジュールは主に Python インタプリタ用です。 sys モジュールは Python に付属するモジュールで、Python インタープリターと対話するためのインターフェイスです。 sys モジュールは、Python ランタイム環境のさまざまな部分を処理するための多くの関数と変数を提供します。 2. sys モジュールの一般的に使用されるメソッド: dir() メソッドを使用して、sys モジュールにどのメソッドが含まれているかを確認できます: import sys print(dir(sys))1.sys.argv - コマンド ライン パラメーター sys を取得します。 argv は、プログラムの外部からコマンドを実装するために使用されます。プログラムにはパラメータが渡され、コマンド ライン パラメータの列を取得できます。

Pythonプログラミング:名前付きタプルの使い方のポイントを詳しく解説 Pythonプログラミング:名前付きタプルの使い方のポイントを詳しく解説 Apr 11, 2023 pm 09:22 PM

はじめに この記事では、Python コレクション モジュールの紹介に引き続き、今回はその中の名前付きタプル、つまり、namedtuple の使い方を主に紹介します。これ以上の苦労はせずに、始めましょう – いいね、フォロー、転送することを忘れないでください~ ^_^名前付きタプルの作成 Python コレクションの名前付きタプル クラスnamedTuples は、タプル内の各位置に意味を与え、コードの読みやすさを向上させます。これらは通常のタプルが使用される場所ならどこでも使用でき、位置インデックスではなく名前によってフィールドにアクセスする機能を追加します。これは、Python 組み込みモジュール コレクションから取得されます。使用される一般的な構文は次のとおりです。 import collections XxNamedT

Python のインポートはどのように機能するのでしょうか? Python のインポートはどのように機能するのでしょうか? May 15, 2023 pm 08:13 PM

こんにちは、私の名前はsomenzzです。鄭兄弟と呼んでください。 Python のインポートは非​​常に直感的ですが、それでも、パッケージがそこにあるにもかかわらず、ModuleNotFoundError が発生することがあります。明らかに、相対パスは非常に正しいですが、エラー ImportError:attemptedrelativeimportwithnoknownparentpackage により、同じディレクトリにモジュールがインポートされ、別のものです。ディレクトリのモジュールは完全に異なります。この記事は、インポートの使用時によく発生するいくつかの問題を分析することで、インポートを簡単に処理するのに役立ちます。これに基づいて、属性を簡単に作成できます。

Python で DateTime を使用する方法 Python で DateTime を使用する方法 Apr 19, 2023 pm 11:55 PM

すべてのデータには最初に「DOB」(生年月日)が自動的に割り当てられます。したがって、ある時点でデータを処理するときに日付と時刻のデータが発生することは避けられません。このチュートリアルでは、Python の datetime モジュールと、pandas や pytz などの周辺ライブラリの使用について説明します。 Python では、日付と時刻に関連するものはすべて datetime モジュールによって処理され、モジュールはさらに 5 つの異なるクラスに分割されます。クラスは、オブジェクトに対応する単なるデータ型です。次の図は、Python の 5 つの日時クラスと、一般的に使用される属性および例をまとめたものです。 3 つの便利なスニペット 1. datet を使用して、文字列を日時形式に変換する

Ansible の仕組みの詳細な説明 Ansible の仕組みの詳細な説明 Feb 18, 2024 pm 05:40 PM

Ansible の動作原理は上図から理解できます: 管理側は管理側への接続に local、ssh、zeromq の 3 つの方法をサポートしています。デフォルトでは ssh ベースの接続が使用されます。この部分は接続に相当します。上のアーキテクチャ図のモジュール; アプリケーション タイプを押すことができます HostInventory (ホスト リスト) の分類は他の方法で実行されます. 管理ノードはさまざまなモジュールを通じて対応する操作を実装します. 単一のモジュールと単一のコマンドのバッチ実行を ad と呼ぶことができます-hoc; 管理ノードは、プレイブックを通じて複数のタスクのコレクションを実装できます。Web サービスのインストールとデプロイ、データベース サーバーのバッチ バックアップなど、ある種の機能を実装します。プレイブックは、システムが通過すると単純に理解できます。

Ansible Ad-Hoc (ピアツーピア モード) Ansible Ad-Hoc (ピアツーピア モード) Feb 18, 2024 pm 04:48 PM

公式ドキュメント: https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html はじめに アドホック コマンドは、一時的に入力して実行されるコマンドで、通常はテストとデバッグに使用されます。永続的に保存する必要はなく、アドホックとは簡単に言うと「インスタントコマンド」です。よく使われるモジュール 1. コマンドモジュール(デフォルトモジュール) デフォルトモジュールはシェルほど強力ではありませんが、基本的にコマンドモジュールの機能をシェルモジュールでサポートできます。 【1】ヘルプ ansible-doccommand# 以下の ansible-doccomm の使用を推奨します

See all articles