Maison développement back-end Tutoriel Python Une brève introduction au module shelve en Python (avec des exemples)

Une brève introduction au module shelve en Python (avec des exemples)

Sep 25, 2018 pm 05:15 PM

Cet article vous apporte une brève introduction au module shelve en Python (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

shelve : Un module de persistance des objets, qui enregistre les objets dans des fichiers (le fichier de stockage de données par défaut est binaire) et peut conserver n'importe quel format de données Python pris en charge par pickle

La seule méthode dans shelve :

shelve.open(filename,flag = 'c', protocol = None, writebake = False)

< td>

'n' : Toujours ouvrir en mode lecture-écriture et créer un nouveau fichier de stockage de données vide
    filename 关联的文件路径
    flag  'r'   :以只读模式打开一个已经存在的数据存储文件
     'w'  :以读写模式打开一个已经存在的数据存储文件
     'c'   :(默认)以读写模式打开一个数据存储文件,如果不存在则创建
     'n'   :总是以读写模式打开并且创建一个新的空数据存储文件
    protocol 表示序列化数据所使用的协议,默认为 None(pickle v3)
    writebake 表示是否开启回写功能
    nom du fichier

    Fichier associé path
    flag
    import shelve
    date = shelve.open(&#39;family.txt&#39;)         # Python的自处理系统会自动生成三个文件
    date[&#39;father&#39;] = &#39;Presly&#39;                        # 默认为创建并且写入“c”
    date[&#39;mather&#39;] = &#39;Vera&#39;
    date[&#39;baby&#39;] = [123, ]
    date.close()
    m = shelve.open(&#39;family.txt&#39;, falg= &#39;r&#39;, writebake=True)          # 当writebake设置为True时,文件里才能直接添加
    print(m[&#39;baby&#39;]) 
    m[&#39;baby&#39;].append(345)
    print(m[&#39;father&#39;])
    print(&#39;-------------&#39;) 
    for key, value in m.items():           # 以字典的格式 
        print(key, &#39;:&#39;, value) 
    m.close()
    Copier après la connexion
    [123]
    Presly
    -------------
    father : Presly
    mather : Vera
    baby : [123,345]
    Copier après la connexion
    'r' : Ouvrir un fichier de stockage de données existant en mode lecture seule

    'w' : Ouvrir un fichier de stockage de données existant en mode lecture-écriture
    'c' : (Par défaut) Ouvrir un fichier de stockage de données en mode lecture-écriture, créer le s'il n'existe pas
  • protocole

  • indique le protocole utilisé pour sérialiser les données, la valeur par défaut est Aucun (pickle v3)

    writebake
  • Indique s'il faut activer la fonction de réécriture

  • 1 Le fichier peut être comme la clé Store -. valeur comme un dictionnaire (Remarque : la clé doit être une chaîne, la valeur peut être n'importe quel type de données)

    sérialisation <🎜. >

    peut sérialiser les données de classe, puis désérialiser les éléments
    import shelve
    
    
    def store_information(database):
        info = {}
        ID = input(&#39;Enter the ID number:&#39;)
        info[&#39;name&#39;] = input(&#39;Enter the name:&#39;)         # 将name ,age , phone 存入字典info里
        info[&#39;age&#39;] = input(&#39;Enter the age:&#39;)
        info[&#39;phone&#39;] = input(&#39;Enter the phone:&#39;)
        database[ID] = info                            # 用ID : info 存入 database文件
    
    
    def lookup_information(database):
        ID = input(&#39;Enter the ID:&#39;)
        field = input(&#39;What would you like to know?(name,age,phone)&#39;)
        field = field.strip().lower()
        print(database[ID][field])              # 通过输入的ID与 field 直接打印结果
    
    
    def print_help():
        print(&#39;Please enter the help command:&#39;)
        print(&#39;store  :store informatinon to database&#39;)
        print(&#39;lookup :look up information by numID&#39;)
        print(&#39;quit   :save information and quit&#39;)
        print(&#39;?      :print help command&#39;)
    
    
    def enter_command():
        cmd = input(&#39;Enter command (? for help)&#39;)
        cmd = cmd.strip().lower()
        return cmd
    
    
    def main():
        database = shelve.open(&#39;db.dat&#39;)
        try:
            while True:
                cmd = enter_command()
                if cmd == &#39;store&#39;:
                    store_information(database)           # 当if函数结束,自动跳转到cmd = enter_command()行
                elif cmd == &#39;lookup&#39;:
                    lookup_information(database)
                elif cmd == &#39;?&#39;:
                    print_help()
                elif cmd == &#39;quit&#39;:
                    return                            # 跳出while循环
        finally:
            database.close()
    
    
    if __name__ == &#39;__main__&#39;: main()
    Copier après la connexion
    La différence de pickle est que pickle ne peut charger les éléments que dans l'ordre de vidage, tandis que shelve peut directement extraire à plusieurs reprises des valeurs clés différentes ou identiques qui sont stockées dans le fichier, 3. l'étagère peut effectuer des opérations similaires aux bibliothèques, ajouter, supprimer, modifier et vérifier

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    Will R.E.P.O. Vous avez un jeu croisé?
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

    Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

    Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

    Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

    Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

    Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

    Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

    Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

    Que sont les expressions régulières? Que sont les expressions régulières? Mar 20, 2025 pm 06:25 PM

    Les expressions régulières sont des outils puissants pour la correspondance des motifs et la manipulation du texte dans la programmation, améliorant l'efficacité du traitement de texte sur diverses applications.

    Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

    Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

    Quelles sont les bibliothèques Python populaires et leurs utilisations? Quelles sont les bibliothèques Python populaires et leurs utilisations? Mar 21, 2025 pm 06:46 PM

    L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

    Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

    Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

    See all articles