Python高阶之对文件的操作
随着社会的发展,人们日常的工作量越来大处理的数据也越来越复杂。以前基本面对的都是结构化数据,但随着互联网的兴起,数据已经主要以半结构化和非结构化趋势过度。有新的需求就会推动科技的发展,python在处理文件就显得优势突显出来,python中有非常多的库来支持文件的操作,为办公自动化贡献了自己的一份力量。
1. 常见的文件类型
2. 读文件操作
文件读取步骤:打开(open)----> 读(read)----关闭释放资源(close)
import sys
print(sys.getdefaultencoding())
一般电脑默认以utf-8编码,不过也有以gbk编码,编码对于文件的读取很重要,当读取的文件编码不一致就会产生乱码。
-
文件读取底层原理 文件读取时通过指针难过的移动来进行,通过这一原理就可以计算出每个文件的的大小。
file = open('resources/致橡树.txt','r',encoding='utf-8')
file.seek(0,2)
print(file.tell())
file.close
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JTSYWPRh-1628524626909)(C:\Users\Administrator\Desktop\Python笔记\图片\指针移动读取文件.png)]
当文件不存在时,会发生FileNotFoundError: [Errno 2] No such file or directory:…,导致程序之间崩溃不在往下执行,这时候我们最后关闭文件的file.close语句就无法执行,如果加上文件又特大的情况下就浪费的电脑的内存毕竟电脑的内存是有限的。
- 解决方式一,使用try except finally结构
file = open('resources/致橡树.txt','r',encoding='utf-8')
try:
data = file.read(32)
while data:
print(data, end='')
data = file.read(32)
finally:
file.close()
- 解决方式二,使用上下文语句,with open() as file:
with open('resources/小雨康桥的寺.txt', mode='r', encoding='utf-8') as file:
reade = file.readline()
print(reade)
model | 对应功能 |
---|
a | 对文件进行追加操作 | r | 对文本文件进行读 | rb | 对二进制文件进行读 | w | 对文件进行写,会对以前的文件进行覆盖 | wb | 写入二进制,会对已经存在的文件进行覆盖 |
3. 写文件操作
- 在日常的文件操作中我们出了文件的读取操作,其中最为更重要的是写操作希望将数据进行持久化进行保存。
- 写文件步骤,打开文件—>写文件 ————>关闭文件
file = open('resources/小雨康桥的寺.txt', mode='a', encoding='utf-8')
try:
file.write('我做不成燕子\n')
file.write('所以我飞不过感情的墙\n')
finally:
file.close()
同样写文件操作也可以with open() as file 上下文语法
with open('resources/小雨康桥的寺.txt', mode='a', encoding='utf-8') as file:
file.write('我做不成燕子\n')
file.write('所以我飞不过感情的墙\n')
4.csv 文件的读取
with open('resources/小雨康桥的寺.txt', mode='r', encoding='utf-8') as file:
reader = csv.reader(file)
for data in reader:
print(''.join(data))
with open('resources/小雨康桥的寺.txt', mode='w', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['我做不成燕子\n', '所以我飞不过感情的墙'])
简单总结
通过学习文件的操作可以为我们日常的学习工作带来很大的遍历,日常产生的数据可以进行持久化保存以便后期的查看。python的对文件处理又先天的优势,对于小白也很能够上手。这样是大多数人选择python进行学习来提高处理日常工作的重要原有。
简单总结
通过学习文件的操作可以为我们日常的学习工作带来很大的遍历,日常产生的数据可以进行持久化保存以便后期的查看。python的对文件处理又先天的优势,对于小白也很能够上手。这样是大多数人选择python进行学习来提高处理日常工作的重要原有。
|