python(类和对象之保存数据到本地)

#声明一个类型
class People(object):
    #类变量
    file_name = 'student.txt'
    def __init__(self,name,school):
        self.name = name
        self.school = school
        #属性可以是列表
        self.pdc = []
        #属性也可以是字典
        self.pdc_dict = {}
    #保存数据的函数
    def save_data(self):
        #1.打开文件
        f = open(self.file_name,'a',encoding='utf-8')
        #2.写入数据
        f.write(self.name)
        f.write(';')
        f.write(self.school)
        f.write('\n---->')
        #将所有的前任名称拼接成一个字符串
        pdc_str = ' '.join(self.pdc)
        f.write(pdc_str)
        f.write('\n')
        #3.关闭文件
        f.close()
People.file_name = 'stu.txt'
#创建一个People对象
#对象有保存信息到本地的函数
p1 = People('张三','智游')
# p1.save_data()
p2 = People('李四','智游')
# p1.save_data()
# 获取对象的属性值,这个属性值是一个列表
p1.pdc.append(p2.name)
print(p1.pdc)

p3 = People('豆豆','智游')
# p1.pdc是一个列表,列表的增删改查都可以正常操作
p1.pdc.append(p3.name)
print(p1.pdc)
# 遍历p1的所有前任名称
for name in p1.pdc:
    print(name)
p1.save_data()

Python中,保存数据到本地可以通过多种方式实现,具体取决于数据型和保存的需求。下面列举了三种常见的方法: 1. 使用文件系统保存数据Python可以使用内置的文件操作函数来将数据保存到本地文件中。对于文本数据,可以使用`open`函数配合写入模式('w')来创建或覆盖文件,并写入数据。例如,保存字符串到文本文件: ```python data = "这是一个需要保存的字符串" with open('example.txt', 'w', encoding='utf-8') as file: file.write(data) ``` 对于二进制数据,可以使用二进制写入模式('wb')。 2. 使用`pickle`模块序列化对象: 当需要保存的是Python对象(如列表、字典、自定义对象等),可以使用`pickle`模块将对象序列化为字节流,并将其保存到文件中。之后可以从文件中反序列化恢复原始对象。 ```python import pickle data = {'key': 'value'} with open('data.pickle', 'wb') as file: pickle.dump(data, file) # 读取文件并恢复对象 with open('data.pickle', 'rb') as file: data = pickle.load(file) ``` 3. 使用`shelve`模块保存多个对象: 如果需要保存多个对象,并且希望以似字典的方式访问它们,可以使用`shelve`模块。`shelve`模块提供了一个似于字典的接口,可以存储Python对象到一个持久的字典中。 ```python import shelve data_dict = {'key1': 'value1', 'key2': 'value2'} with shelve.open('my_shelf.db') as shelf: for key, value in data_dict.items(): shelf[key] = value # 之后可以读取数据 with shelve.open('my_shelf.db') as shelf: print(shelf['key1']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值