Ciallo~(∠・ω・ )⌒☆第十三篇 Python文件读写

文件读写是Python中常用的操作之一,可以使用内置的open()函数来打开文件,并使用不同的模式进行读写操作。实现文件的读写主要有以下几步:

一、Open函数使用

open()函数用于打开一个文件,并返回文件对象。它的基本语法如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file文件路径
形参mode打开模式
encoding解码方式

 

参数说明:

file: 文件名(包括路径),可以是字符串类型(表示文件路径)或者是一个文件描述符(整数类型)。

mode: 打开文件的模式,默认为'r'(只读)。常见的模式有:

'r': 只读模式

'w': 写入模式,会覆盖原文件

'a': 追加模式,在原文件末尾添加内容

'x': 创建新文件并写入内容,如果文件已存在则报错

'b': 二进制模式

't': 文本模式(默认)

'+': 可读可写模式


buffering: 指定缓冲策略,0表示不缓冲,1表示行缓冲,大于1表示缓冲区大小(默认值为-1,表示使用默认缓冲策略)

encoding: 文件的编码方式,默认为None(使用默认编码方式)

errors: 在encoding指定的编码方式下,如果遇到无法解码的字节时的处理方式,默认为None(表示引发一个UnicodeDecodeError错误)

newline: 控制转换行为,默认为None(根据平台进行转换)

closefd: 当文件关闭时,同时关闭底层文件描述符,默认为True(表示关闭)

opener: 用于打开文件的自定义开启器(如果没有指定,使用默认的开启器)

open()函数返回一个文件对象,可以使用read()、readline()、readlines()、write()、writelines()等方法对文件进行读写操作。使用完文件后,需要通过close()方法关闭文件对象,以释放资源。也可以使用with语句来自动关闭文件对象,无需调用close()方法。

with open('file.txt', 'r') as f:
    print(f.read())

 这样就打开了名为file.txt的文件,并打印了文件的所有内容。

二、Json与pickle

Python中的JSON和pickle都是用于实现对象的序列化和反序列化的模块。在Python中,可以使用json模块来处理JSON数据。json模块提供了dumps()loads()函数来进行JSON的序列化和反序列化。dumps()函数将Python对象转换为JSON格式的字符串,loads()函数将JSON字符串转换为Python对象。

import json
# 直接将obj序列化到文件
 with open("./data.txt", "w") as f:
     json.dump(datas, f)

# 读取文件内容 返回字符串 将字符串反序列化python数据结构
 with open("./data.txt", "r") as f:
     content = f.read()
     print(content, type(content))
     datas = json.loads(content)
    print(datas, type(datas))
     first_user = datas["user"][0]
     print(first_user.get("un"), first_user.get("pwd"))


 #load 一步完成 把文件内容反序列化成python数据结构
 with open("./data.txt", "r") as f:
     datas = json.load(f)
     first_user = datas["user"][0]
     print(first_user.get("un"), first_user.get("pwd"))

 pickle是Python中的一个标准模块,用于实现对象的序列化和反序列化。与JSON不同,pickle可以用于序列化几乎所有的Python对象,包括自定义类的实例、函数、类等。pickle序列化的对象是二进制格式的,不可读。在Python中,可以使用pickle模块来进行pickle的操作。pickle模块提供了dump()load()函数来进行pickle的序列化和反序列化。

import pickle

  with open("./data2.txt","wb") as f:
      f.write(data_bytes)

 with open("./data2.txt","wb") as f:
     pickle.dump(data, f)

 with open("./data2.txt","rb") as f:
     content = f.read()
     data = pickle.loads(content)
     print(data,type(data),data["address"][2])

 with open("./data2.txt", "rb") as f:
     data = pickle.load(f)
     print(data, type(data), data["address"][0])

三、Os模块

os模块是Python标准库中的一个模块,用于与操作系统进行交互。它提供了一些方法来执行操作系统相关的功能,如文件和目录管理,进程管理等。

os.name:返回操作系统的名称,例如'posix'表示Linux和Unix,'nt'表示Windows。

os.getcwd():获取当前工作目录。

os.chdir(path):改变当前工作目录到指定路径。

os.listdir(path):返回指定路径下的文件和目录列表。

os.mkdir(path):创建一个新目录。

os.remove(path):删除指定的文件。

os.rmdir(path):删除指定的目录。

os.path.exists(path):检查指定路径是否存在。

os.path.isfile(path):检查指定路径是否为文件。

os.path.isdir(path):检查指定路径是否为目录。

os.path.join(path1, path2):将两个路径合并为一个路径。

 

愿与最重要之人能再次相会。                                                                 —— 艾拉《可塑性记忆》

 

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值