Python pickle序列化后写入文件,并实现曾加内容

pickle序列化

# _*_coding:utf-8_*_
import pickle
import os

list_ec = []

while True:
    if os.path.isfile("course_list"):    # 判断文件夹是否存在
        with open("course_list", "rb") as f:
            list_aa = pickle.load(f)
            f.close()
        # print(list_aa)    # 可以打开,每次读取完文件的时候,打印出来
        nu = input(">>")    # 输入列表内每个元素的首字符以"|"为分割符
        if nu == "exit":
            break
        else:

            for i in list_aa:
                list_ec.append(i)
                if nu == i.split("|")[0]:
                    number_a = list_aa.index(i)
                    # print(number_a)    # 打印出每次修改元素所在列表内的索引
            ni = input(">:")    # 输入增加的字符
            nui = list_ec[number_a]
            list_ec[number_a] = "%s|%s" % (nui, ni)
            print(list_ec)    # 输入完成后,打印出修改完成的字符
            with open("course_list", "wb") as f:
                pickle.dump(list_ec, f)
                f.close()
    else:
        """
        文件夹不存在先把下面的信息写入创建文件的夹内
        """
        a = "Lili|python|linux"
        b = "admin|linux|python"
        c = "ak|python|go"
        list_a = [a, b, c]
        print(list_a)
        with open("course_list", "wb") as f:
            pickle.dump(list_a, f)
            f.close()

代码运行:

C:\Python35\python.exe C:/Users/pengi/Desktop/6-13/class_s.py
[‘Lili|python|linux‘, ‘admin|linux|python‘, ‘ak|python|go‘]
>>ak
>:linux
[‘Lili|python|linux‘, ‘admin|linux|python‘, ‘ak|python|go|linux‘]

Out

原文地址:https://www.cnblogs.com/pengingintent/p/11105716.html

时间: 2024-11-05 14:42:09

Python pickle序列化后写入文件,并实现曾加内容的相关文章

python pickle 序列化类

# coding:utf-8 try: import cPickle as pickle except ImportError: import pickle class PickleVar(object): __doc__ = '''序列化操作类''' def __init__(self): print ('------------------------------------------------------') def dump(self, data, fileName): with o

java基于NIO的分散读取文件,然后统一聚合后写入文件

分散读取:对于一个文件,可以分散的读取数据,可以快速的读取,好比多个线程在分段同时读取: 聚合写入:为了提高效率,一般读取到的数据都是分散的,要快速写入,就需要把分散的数据聚集在一起,然后一块写入到文件: 具体代码如下: //首先创建一个随机访问文件 RandomAccessFile raf= new RandomAccessFile("test.txt", "rw"); //根据随机获取通道 FileChannel channel = raf.getChannel

第九节:python pickle序列化、装饰器、模块

python个人笔记,纯属方便查询 中间退出的时候要保存,然后再次进入的时候还是退出的那个点. 字典-----字符串(硬盘)------字典 pickle语法dump: 把字典写入硬盘文件中: import pickle account_info = { 'a':'bbbbbbbbb', 'b':'ccccccccc' } f=file('account.pki','wb')         #定义一个二进制文件,只有字符串才能写入硬盘,所以字典要先转换为字符串. pickle.dump(acc

排序好后写入文件

1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 struct person{ 6 char *number; 7 char *name; 8 int score; 9 }; 10 11 int main() 12 { 13 struct person arr[5]; 14 FILE *fp = fopen("src", "r"); 15 FI

[笔记]python pickle模块

什么叫序列化 把变量存储到磁盘的过程叫序列化,英语中也叫:pickling, serialization, marshalling, fastening. 反之,把磁盘中的变量内容读到内存中就是反序列化,又叫unpickle,名词是unpickling. 在Python中,有两个模块cPickle和pickle可以用来序列化.只不过,cPickle是用C语言写的,比较快.而pickle,是用python语言写的. 在导入过程中,常常先尝试导入cPickle模块,如果不行,才导入pickle模块.

python数据序列化---json &amp; pickle

json & pickle数据序列化 序列化: 就是列表,字典等数据类型转乘字符串存入文本文件 反序列: 就是字符串从文本读出来后通过一种方法转化为列表,字典等数据类型.例如eval() json通用的:只能处理一些简单的数据类型:json: 序列化和反序列化函数: 案例1:  import json  info = {   "name": "brace",   "age": 22,  }  json_str = json.dumps(i

【Python】写入文件

1.1写入空文件 若将文本写入文件,在调用open()时候需要提供另外一个实参,告诉Python你要写入打开的文件 file_path = 'txt\MyFavoriteFruit.txt' with open(file_path,'w') as file_object: file_object.write('I like appple.') 在这个实例中,调用open()提供了两个实参,第一个实参是要打开文件的路径与名称,第二个实参('w')告诉Python,我们将要以写的方式打开这个文件 r

python对象序列化之pickle

本片文章主要是对pickle官网的阅读记录. The pickle module implements binary protocols for serializing and de-serializing a Python object structure. "Pickling" is the process whereby a Python object hierarchy is converted into a byte stream, and "unpickling&

json&amp;pickle序列化

一.用途 我们需要将内存中的数据进行序列化,即写入文件中时,写入的类型只能是字符串或者二进制类型.但是如果我们想要将复杂一些的数据类型,如:列表.字典或者函数之类的同样进行序列化,我们就要用到 json或者pickle. 二.json序列化 1.dumps序列化和loads反序列化 dumps把数据类型转换成字符串 import json info = { 'name': 'The Count of Monte Cristo', 'type': 'Movie' } data = json.dum