资讯专栏INFORMATION COLUMN

文件操作

NusterCache / 3601人阅读

摘要:将列表信息保存到文件中即将存储的数据对象存入的文件序列化操作建议保存对象时,文件的后缀名不要使用电脑系统能够打开的格式读取文件打开文件读取的文件有返回值

打开文件

文件路径:相对路径 : 1-读文件.py 绝对路径 : C:UsersxlgDesktop文件操作1-读文件.py

r :以只读的方式打开文件,文件描述符放在文件的开头位置

rb : 以二进制格式打开文件,文件只读,文件描述符放在文件的开头位置

w:以只写的方式打开文件,如果文件存在,那么覆盖该文件,如果文件不存在,则会创建文件。

wb:以二进制格式打开文件,文件用于写入,如果文件存在,那么覆盖该文件。

w+:以读写的方式打开文件

a:打开一个文件用于追加写入,如果文件不存在,则会创建文件;如果文件存在,则会在文件末尾写入内容。

a+:以读写的方式打开文件

encoding:文件的编码格式
errors:错误处理
strict:默认方式,如果遇到非法字符,抛出异常
ignore:忽略非法字符
replace:用?代替非法字符
open:返回值:文件描述符

打开普通文件
f1 = open("file.txt","r", encoding="utf-8")
# 当文件不存在,抛出异常
# FileNotFoundError: [Errno 2] No such file or directory: "file.txt"

# 打开二进制格式的文件:不能设置encoding
f2 = open("file.txt", "rb")
# 指定错误处理方式
f3 = open("file.txt", mode="r", encoding="utf-8", errors="ignore")
读取文件
# 读取文件所有内容    
str1 = f1.read()
# 读取指定字符个数
str2 = f1.read(4)
# 读取整行 包括
   size代表字符个数 中文也算一个
str3 = f1.readline(size)  
# 读取所有行,返回一个列表
str4 = f1.readlines()

#如果给定的size数字大于0,实际返回的size字符数会比写入的size大,原因需要填充缓冲区

# 修改描述符的位置  seek()
# tell()  返回描述符的位置
print(f1.read(3))
print(f1.tell()) # 3
f1.seek(3)
print(f1.read(3))  # 打印第四个到第六个字符
关闭文件
f1.close() # 必须关闭

try:
    f2 = open("file.txt", "r", encoding="utf-8")
    print(f2.read())
except FileNotFoundError as e:
    print("文件没有找到")
finally:
    if f2:
        f2.close()

# 简洁的方式:
with open("file.txt", "r", encoding="utf-8") as f5:
print(f5.read())
写入文件
with open("c.txt","w", encoding="utf-8") as f2:
f2.write("124789kfxfh")
编码与解码
# 编码  encode("编码格式")
with open("d.txt","wb") as f1:
    str1 = "北京你好,我有沙尘暴,hello world"
    f1.write(str1.encode("GBK"))

# 解码  decode("编码格式")
with open("d.txt","rb") as f2:
    data = f2.read()
    print(data)
    print(type(data))  # byte 字节

    newStr =data.decode("GBK")
    print(newStr)
    print(type(newStr))  # str
存储操作
有时候,我们需要将某些字符串、列表、字典、元组等数据长久保存,现在,这个时候,就需要使用永久性存储的模块文件pickle。pickle模块可以将对象转换为一种可以存储或读取的格式。

pickle:该模块实现了数据的序列化与反序列化,通过pickle的序列化操作,可以实现将程序中的对象保存到文件信息中,实现永久性存储。
通过pickle的反序列化操作,可以实现将程序中的永久性存储的对象解析出来。

list1 = [1,2,3,4,5,6]
f1 = open("list.data", "wb")
# 将列表信息保存到文件中
# pickle.dump(即将存储的数据对象, 存入的文件)   序列化操作
# 建议:保存对象时,文件的后缀名不要使用电脑系统能够打开的格式
pickle.dump(list1, f1)
f1.close()


# 读取文件
tmp = []
# 打开文件
f2 = open("list.data", "rb")
# pickle.load(读取的文件)  有返回值
tmp = pickle.load(f2)
print(tmp)
f2.close()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41574.html

相关文章

  • ❤️Python【文件操作】保姆式教程❤️,计算机那么多文件,你绕不过这一关的!

    ?前言 在Python写代码做项目时,我们往往需要对多个文件进行操作,在现在的源代码文件中怎么导入其他文件?怎么对其他文件进行操作?这都是经常要面临的问题,尤其是爬虫,爬到的数据放在哪里?用到的时候怎么调出来? 这就涉及到了Python的文件操作知识了,我们不可能永远都只会在一个源文件上做所有的操作,这也是必须掌握的一个知识板块。 与此同时,我的Python新手入门教程系列文章也已经快更新完了,欢...

    forsigner 评论0 收藏0
  • 文件操作

    摘要:二文件操作操作文件时,一般需要经历如下步骤打开文件文件句柄文件路径模式注中打开文件有两种方式,即和,本质上前者在内部会调用后者来进行文件操作,推荐使用。 一 介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分。 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用...

    546669204 评论0 收藏0
  • UCloud MySQL云数据库操作指南

    摘要:二进制日志是记录对数据发生或潜在发生更改的语句,并以二进制的形式保存。删除配置文件删除配置文件配置文件支持删除操作。在配置文件列表页选中需要删除的配置文件,选中删除即可完成删除操作。UCloud MySQL云数据库操作指南 基本操作 启动MySQL实例 如果要启动处于关闭状态的MySQL实例,首先选择需要启动的MySQL实例,在列表右侧点击启动按钮,弹出的确认对话框选择确定...

    raoyi 评论0 收藏0
  • python开发第三篇--文件的基本操作和初识函数

    摘要:文件的基本操作编码不同编码之间的二进制是不能互相识别的。返回值有几种情况分别是没有返回值返回一个值返回多个值。函数定义计算的长度函数调用因为没有返回值,此时的为只写,后面不写其他内容,也会返回,但是遇到会终止整个函数。 文件的基本操作 编码 1.不同编码之间的二进制是不能互相识别的。2.对于文件的存储,及传输 不能是unicode的编码。 bytes:内部编码格式(非unicode) ...

    魏明 评论0 收藏0

发表评论

0条评论

NusterCache

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<