Python文件读写

小白如何成为python数据分析师

第 十六 天---->文件读写

在日常操作或者项目开发中我们经常要将数据进行持久化处理。(把数据保存到文件中)

持久化:是指将数据从无法长久保存数据的存储介质(通常是内存)转移到可以长久保存数据的存储介质(通常是硬盘)中。实现数据持久化最直接简单的方式就是通过文件系统将数据保存到文件中。

一般我们通过计算机的文件系统将数据进行持久化操作(保存数据)。

计算机的文件系统是一种存储和组织计算机数据的方法,它使得对数据的访问和查找变得容易,文件系统使用文件树形目录的抽象逻辑概念代替了硬盘、光盘、闪存等物理设备的数据块概念,用户使用文件系统来保存数据时,不必关心数据实际保存在硬盘的哪个数据块上,只需要记住这个文件的路径和文件名。在写入新数据之前,用户不必关心硬盘上的哪个数据块没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。(常见的是磁盘,也有基于NAND Flash的固态硬盘);文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。

好了步入今天我们要学习的内容,在Python中要实现文件操作。

打开和关闭文件

有了文件系统,我们可以非常方便的通过文件来读写数据;在Python中我们可以使用Python内置的open函数来打开文件,我们还可以通过函数的参数指定文件名操作模式字符编码等信息,对文件进行读写操作。

上代码就懂了,请看

读取文本文件(字符文件)
"""文件操作(读取文本文件(字符文件))
finally ---> 总是执行代码(不管正常异常,finally中的代码一定会被执行到)

"""
import sys

# 查看自己的计算机解码方式
print(sys.getdefaultencoding())

# 从相对路径读取同目录下的文件。操作=“r”读文件,解码方法'utf-8'
file = open('resources/致橡树.txt', 'r', encoding='utf-8')
try:
    # 如果读不到数据,read方法返回none
    # read(32):读取字节,如果是字符文件,我们一般给定读取大小(字节),防止一次性读取占用较大内存。
    data = (file.read(32))
    while data:
        print(data, end='')
        data = file.read(32)
finally:
    # 关闭文件
    file.close()
    

欣赏下诗歌,继续接下来的学吧。

致橡树

我如果爱你
绝不学攀援的凌霄花
借你的高枝炫耀自己

我如果爱你
绝不学痴情的鸟儿
为绿荫重复单调的歌曲

也不止像泉源
常年送来清凉的慰藉
也不止像险峰
增加你的高度 衬托你的威仪
甚至日光 甚至春雨
不 这些都还不够
我必须是你近旁的一株木棉
作为树的形象和你站在一起
根 紧握在地下
叶 相触在云里
每一阵风过
我们都互相致意
但没有人 听懂我们的言语
你有你的铜枝铁干
像刀 像剑 也像戟;
我有我红硕的花朵
像沉重的叹息 又像英勇的火炬
我们分担寒潮、风雷、霹雳
我们共享雾霭、流岚、虹霓
仿佛永远分离 却又终身相依
这才是伟大的爱情
坚贞就在这里
爱 不仅爱你伟岸的身躯
也爱你坚持的位置 足下的土地
读二进制文件(字节文件)

图形文件及文字处理程序等计算机程序都属于二进制文件。

"""
example02 - 读二进制文件(字节文件:如图片)

Author: 数据分析大师兄
Date: 2021/8/9
"""
from io import SEEK_END, SEEK_SET

file = open('resources/猫咪.jpeg', mode='rb')
# 计算文件长度(大小)
# 文件指针从0,移动到末尾
# file.seek(0, 2)
file.seek(0, SEEK_END)
print(file.tell())
# 文件指针 移动到开头。
# file.seek(0, 0)
file.seek(0, SEEK_SET)
try:
    # 文件读取大小512字节/512一般为文件系统常用分配字节。
    data = file.read(512)
    while data:
        # 打印文件不换行
        print(data, end='')
        data = file.read(512)
finally:
    # 关闭文件(结束读取)
    file
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值