Python进阶之二

  今天进阶的知识就是在实际操作中比较常用的知识——文件操作

  1.文件的读写

    假设有问价1.txt 内容为:hello Gary Nie

#r+:又读又写(已读为主),不会清空内容 ; w+:又读又写(以写为主)会清空内容
#
w:写入,并且清空文件原内容;a:追加内容,保留源文件
#x:独占模式,文件只能在一个程序里打开 filename=open("1.txt","w") filename.close() #结果就是文件内容被清空 filename1=open("1.txt","a") filename.write("Hao are you!") filename1.close() #结果就是文件内容后面加上括号内容

    下面写一个二进制读写的例子

datas=[{"bookName":"deep learning","price":58},{"bookName":"maching learning","price":58}]
dat=open("book.txt","wb") #wb是以二进制的方式写入
dat.write(bytes([len(datas)])) #bytes是转换二进制

for i in datas: 
    dat.write(bytes([len(i["bookName"])]))
    dat.write(bytes(i["bookName"],"ascii")) #把字符串换成ASCII字符吗
    dat.write(bytes([i["price"]]))

print("二进制写入完成")
dat.close()


data=[]
f=open("book.txt","rb")
n=int(f.read(1)[0]) #读取一个字节里面的第一位
for i in range(0,n):
    name_len=int(f.read(1)[0])
    name=f.read(name_len).decode("ascii") #decode(“asciii”)是把二进制转换成ascii码
    age=int(f.read(1)[0])
    data.append({"bookName":name,"price":age})
print(data)
f.close() #每一次打开文件操作 ,记得把它关上哦
        #还有另一种关于二进制的转换,请参考http://www.cnblogs.com/GaryNie/p/8358956.html

 好了 今天就到这里了,若有错误请留言:)

     

 

posted @ 2018-03-19 16:45  GaryBlog  阅读(179)  评论(0编辑  收藏  举报