python程序设计——文件操作

Posted 飞鸟先森

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python程序设计——文件操作相关的知识,希望对你有一定的参考价值。

分类

1.文本文件

存储常规字符串,由若干文本行组成,每行以换行符‘\n‘结尾

2.二进制文件

把对象以字节串存储,常见的图形图像、可执行文件、数据库文件office文档等

 1 #创建文件
 2 >>fw = open(sample.txt,w+,encoding=utf-8)
 3 >>s = 文本读取方式\n sample.txt w+\n
 4 >>fw.write(s)
 5 >>fw.close()
 6 #查看sample.txt
 7 文本读取方式
 8  sample.txt w+
 9 
10 #建议形式,关键字with可以自动管理资源
11 >>s = 文本读取方式\n sample.txt w+\n
12 >>with open(sample.txt,w+,encoding=utf-8) as fw:
13 >>        fw.write(s)
14 # 判断文件对象是否关闭
15 >>fw.colsed
16 True
17 
18 #添加文件内容
19 >>s = hello\n
20 >>with open(sample.txt,a+,encoding=utf-8) as fa:
21 >>        fa.write(s)
22 文本读取方式
23  sample.txt w+
24 hello
25 
26 # 读取文件内容
27 # 读取一行
28 >>fread = open(sample.txt,r,encoding=utf-8)
29 >>fread.readline()
30 文本读取方式\n
31 >>fread.readline()
32  sample.txt w+\n
33 >>fread.readline()
34 hello\n
35 
36 # 一次读取所有行
37 >>fread = open(sample.txt,r,encoding=utf-8)
38 >>fread.readlines()
39 [文本读取方式\n,  sample.txt w+\n, hello\n]
40 
41 #读取固定字符个数
42 >>fread = open(sample.txt,r,encoding=utf-8)
43 >>fread.read(4)
44 文本读取
45 >>fread.close()

可以使用dir() 查看与对象相关的方法,使用help()查看方法的用法

1 >>fread = open(sample.txt,r,encoding=utf-8)
2 >>fread.colse()
3 >>dir(fread)
4 #查看read()函数用法
5 >>help(fread.read)

文件序列化

序列化,就是把内存中的数据在不丢失数据类型的情况下,转化为二进制形式的过程

1.使用pickle模块

Pickle是常用并且快速的二进制文件序列化模块

 1 #使用pickle dump依次写入二进制文件
 2 import pickle
 3 f = open(sample_pickle.dat,wb)
 4 
 5 alist = [[2,3,4],[6,7,8]]
 6 aset = {a,b,c}
 7 atuple = (-5,-3,-1)
 8 astr = 北京欢迎你,welcome!
 9 adic = {name:jin,sex:None}
10 try:
11     pickle.dump(alist,f)
12     pickle.dump(aset,f)
13     pickle.dump(atuple,f)
14     pickle.dump(astr,f)
15     pickle.dump(adic,f)
16 except:
17     print(write error)
18 finally:
19     f.close()
20 
21 #使用Pickle load依次读取二进制文件
22 fr = open(sample_pickle.dat,rb)
23 try:
24     x=pickle.load(fr)
25     print(x)
26     x=pickle.load(fr)
27     print(x)
28     x=pickle.load(fr)
29     print(x)
30     x=pickle.load(fr)
31     print(x)
32     x=pickle.load(fr)
33     print(x)
34 except:
35     print(read error)
36 finally:
37     fr.close()

2.使用struct模块

 1 import struct
 2 import binascii
 3  
 4 values = (1, bgood, 1.22) #字符串必须为字节流类型
 5 s = struct.Struct(I4sf)
 6 packed_data = s.pack(*values) #序列解包
 7 unpacked_data = s.unpack(packed_data)
 8   
 9 print(Original values:, values)
10 print(Format string :, s.format)
11 print(Uses :, s.size, bytes)
12 print(Packed Value :, binascii.hexlify(packed_data))
13 print(Unpacked Type :, type(unpacked_data),  Value:, unpacked_data)
14 
15 out:
16 Original values: (1, bgood, 1.22)
17 Format string : bI4sf
18 Uses : 12 bytes
19 Packed Value : b01000000676f6f64f6289c3f
20 Unpacked Type : <class tuple>  Value: (1, bgood, 1.2200000286102295)

 


以上是关于python程序设计——文件操作的主要内容,如果未能解决你的问题,请参考以下文章

python常用代码片段总结

学习笔记:python3,代码片段(2017)

常用python日期日志获取内容循环的代码片段

C#程序员经常用到的10个实用代码片段 - 操作系统

VSCode自定义代码片段——git命令操作一个完整流程

使用 Python 代码片段编写 LaTeX 文档