字符串
字符串
将字符串完成持久化的扁平处理
'''将文字扁平化处理'''
scores=[88,99,77,65]
def write_scores():
with open('data_list.txt','w') as f:
f.write('hello\n')
''' 列表的类型转化成字符串类型 str '''
f.write(str(scores))
print('文件写入完成')
def read_score():
with open('data_list.txt','r') as f:
'''eval 把符合相应格式的字符串,转化成为pyhton的对应格式'''
lst = eval(f.read())
lst[0]=100
print(lst)
if __name__=='__main__':
read_score()
字节数
导入 pickle,序列化一个字符串的对象函数
- 先定义一个字典表的类型
- dumps 中传递过来的对象,序列化成一个字符串的对象
- loads 将刚才已经序列化的对象,完成字符串的载入,完成反序列化
- 完成在文件中的序列化的操作
- 完成一个二进制的文件持久化,读写方式是二进制写入
import pickle
''' 1. 先定义一个字典表的类型'''
person={'name':'tom','age':20}
''' 2. dumps 中传递过来的对象,序列化成一个字符串的对象'''
str =pickle.dumps(person)
''' 3. loads 将刚才已经序列化的对象,完成字符串的载入,完成反序列化'''
dict =pickle.loads(str)
print(dict)
''' 4. 完成在文件中的序列化的操作'''
''' 5. 完成一个二进制的文件持久化,读写方式是二进制写入'''
pickle.dump(person,open('pick_dc','wb'))
''' 6. 反序列化对象到p中,此时p的对象的类型是dict'''
p=pickle.load(open('pick_dc','rb'))
完成一个文件的序列化和反序列化的操作
''' 1. 导入模块'''
import shelve
scores=[0,90,87,100]
person={'name':'tom','age':20}
''' 2. 准备一个数据库文件,只需要指定数据库的文件中的名称函数'''
db=shelve.open('she_stu')
''' 3. 定义一个存储person的键值,在键值中存储person的数据类型'''
db['s']=person
db['sco']=scores
''' 4. 用len的函数来确认现在的数据库中有多少的键值'''
print(len(db))
print(db['s'])
完成一个类的序列化的操作
def write_msg():
s=Stu('Gu','22')
''' 7. 先创建一个文件,再把stu的类型存储在s_db中'''
db=shelve.open('she_db')
db['m']=s
db.close()
def read_msg():
db=shelve.open('she_db')
u=db['m']
print(u.name)
db.close()
if __name__=='__main__':
'''??老师这个为什么没有调用第一个方法'''
write_msg()
read_msg()
字节数组
s1='abc'
s2='the Class'
''' 1. 声明一个可以原位改变的byteArray的数组,使用的范围更加广泛一些'''
''' 2. 在数组中完成上面字符串的存储,并且一定要声明类型的操作'''
ba=bytearray(s1,'utf8')
''' 3. 可以直接在字符的后面完成字符串的添加操作'''
''' 4. 用decode的方式可以解码---字符串的操作'''
ba.append(93)
ba.decode('utf8')
print(ba)
字符串中的类型转化
bom的处理
主要作用是清除字符串之前的标记字符的操作
print(open('data_list.txt','r',encoding='utf-8-sig').read())
''' 1. 直接先读取文件中的内容,但是我的前面没有出现标记符号?? 为啥'''
''' 2. 去掉字节的标记符号'''