Maison >développement back-end >Tutoriel Python >Une brève introduction au module shelve en Python (avec des exemples)
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)
|
Fichier associé path | |||||||||||
flagimport shelve date = shelve.open('family.txt') # Python的自处理系统会自动生成三个文件 date['father'] = 'Presly' # 默认为创建并且写入“c” date['mather'] = 'Vera' date['baby'] = [123, ] date.close() m = shelve.open('family.txt', falg= 'r', writebake=True) # 当writebake设置为True时,文件里才能直接添加 print(m['baby']) m['baby'].append(345) print(m['father']) print('-------------') for key, value in m.items(): # 以字典的格式 print(key, ':', value) m.close() |
[123] Presly ------------- father : Presly mather : Vera baby : [123,345]'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 | ||||||||||||
td> indique le protocole utilisé pour sérialiser les données, la valeur par défaut est Aucun (pickle v3) |
| |||||||||||
writebake td> |
sérialisation
peut sérialiser les données de classe, puis désérialiser les élémentsimport shelve def store_information(database): info = {} ID = input('Enter the ID number:') info['name'] = input('Enter the name:') # 将name ,age , phone 存入字典info里 info['age'] = input('Enter the age:') info['phone'] = input('Enter the phone:') database[ID] = info # 用ID : info 存入 database文件 def lookup_information(database): ID = input('Enter the ID:') field = input('What would you like to know?(name,age,phone)') field = field.strip().lower() print(database[ID][field]) # 通过输入的ID与 field 直接打印结果 def print_help(): print('Please enter the help command:') print('store :store informatinon to database') print('lookup :look up information by numID') print('quit :save information and quit') print('? :print help command') def enter_command(): cmd = input('Enter command (? for help)') cmd = cmd.strip().lower() return cmd def main(): database = shelve.open('db.dat') try: while True: cmd = enter_command() if cmd == 'store': store_information(database) # 当if函数结束,自动跳转到cmd = enter_command()行 elif cmd == 'lookup': lookup_information(database) elif cmd == '?': print_help() elif cmd == 'quit': return # 跳出while循环 finally: database.close() if __name__ == '__main__': main()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!