(一篇文章,三重满足)open函数,json和pickle模块,os模块

open函数

open()函数是Python内置的函数之一,用于打开文件并返回一个文件对象,通过文件对象可以执行文件的读取、写入、追加等操作。

一般语法如下

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

其中,参数的含义如下:

file:要打开的文件的路径(字符串)或文件描述符(整数)。
mode:文件的打开模式,用于指定文件的操作方式。默认为'r'(只读)。
buffering:可选参数,用于指定缓冲策略,通常为-1(使用系统默认值)。
encoding:可选参数,用于指定文件的编码方式,通常为None(使用默认编码)。
errors:可选参数,用于指定编解码时的错误处理方式。
newline:可选参数,用于指定文本文件的换行符,通常为None(使用系统默认换行符)。
closefd:可选参数,用于指定是否关闭文件描述符(通常为True)。
opener:可选参数,用于指定一个自定义的打开器函数,通常不需要指定。
open()函数返回一个文件对象,可以使用文件对象的方法来执行文件的读取、写入、关闭等操作

示例:读取文件内容并打印。

file_path = 'example.txt'

# 以只读模式打开文件
with open(file_path, 'r') as f:
    content = f.read()
    print(content)

打开文件并写入内容

# 打开文件并写入内容
file_path = "output.txt"
with open(file_path, 'w') as file:
    file.write("Hello, world!\n")
    file.write("This is a sample text.")

open()函数是Python中一个重要的文件操作函数,用于打开文件并进行读取、写入、追加等操作。通过本文,已经了解了open()函数的用法、语法、文件模式、示例代码以及在实际编程中的应用场景。掌握open()函数能够更好地处理文件操作任务,同时编写更具可读性和可维护性的代码。


json模块

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。在Python中,可以使用 json 模块来处理JSON数据

使用 JSON 函数需要导入 json 库:import json

json可以用于字符串或者字典等与python数据类型之间的序列化与反序列化操作。

 json模块常用的功能的:dumps,dump,loads,load

json.dumps

把python对象转换成json对象的一个过程,生成的是字符串

import json
data = json.dumps({"a":1,"c":2})
print(data) # {"a": 1, "c": 2}
print(type(data)) # <class 'str'>

json.dump、 json.load

json.dump  作用:是把python对象转换成json对象生成一个fp的文件流,和文件相关

import json

# 准备要写入的数据,这里假设是一个字典
data = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 指定文件路径
file_path = 'data.json'

# 打开文件,准备写入 JSON 数据
with open(file_path, 'w') as f:
    json.dump(data, f)

json.load:从一个文件读取JSON类型的数据,然后转换成Python字典

import json

data = {
    "name": "Satyam kumar",
    "place": "patna"
}


with open("1.json", "w") as f:
    json.dump(data, f) #写入方法一
   # f.write(json.dumps(data)) #写入方法二

with open("1.json", "r") as f:
	res = json.load(f) #将文件中的JSON数据,然后转换成Python字典
	print(type(res)) # <class 'dict'>
    print(res) # {'name': 'Satyam kumar', 'place': 'patna'}

json.load

用于将json字符串类型的数据转成dict

import json  

data = {'a':'1111','b':'2222','c':'3333','d':'4444'}   
jsDumps = json.dumps(data)  # 转为json字符串
jsLoads = json.loads(jsDumps) # 字符串转为字典dict
print(jsLoads) # {'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'}
print(type(jsLoads)) #<class 'dict'>

os模块

os是“operating system”的缩写,​​​​​​​os模块提供各种 Python 程序与操作系统进行交互的接口,使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。

os 模块属于内置模块,不需要安装,直接导入即可使用。

import os

路径介绍

用于定位一个文件或者目录的字符串被称为 路径。在程序开发时,通常涉及到两种路径:一种是相对路径,另一种是绝对路径。

相对路径: 在学习相对路径之前,需要先了解什么是当前工作目录,当前工作目录是指当前文件所在的目录。在 Python 中,可以通过 os 模块提供的 getcwd() 方法获取当前工作目录。

import os

print(os.getcwd())  # 打印当前目录

相对路径是依赖于当前工作目录的。如果在当前工作目录下,有一个名称为 message.txt 的文件,那么在打开这个文件时,就可以直接写文件名,这时采用的就是相对路径。message.txt 文件的实际路径就是当前工作目录:

"E:\Code\lesson\python-package" + 相对路径 "message.txt"
即 "E:\Code\lesson\python-package\message.txt"

如果在当前工作目录下,有一个子目录 demo,并且在该子目录下保存着文件 message.txt,那么在打开这个文件时就可以写为 demo/message.txt,代码如下:

with open("demo/message.txt") as file:                                                               # 通过相对路径打开文件
    pass

在 Python 中,指定文件路径时需要对路径分隔符 \ 进行转义,即将路径中的 \ 替换为 \\ 。例如,对于相对路径 demo\message.txt,需要用 demo\\message.txt 代替。另外,也可以将路径分隔符 \ 用 / 代替。

绝对路径:绝对路径是指文件的实际完整路径,它不依赖于当前工作目录,从盘符出发。 在 Python 中,可以通过 os.path 模块提供的 abspath() 方法获取一个文件的绝对路径。例如,获取相对路径 demo\message.txt 的绝对路径,代码如下:

import os

print(os.path.abspath(r"demo\message.txt"))  # 打印绝对路径

常用方法详解

 getcwd()方法——获取当前工作目录(字符串)
os.getcwd()

参数说明:返回值:返回表示当前工作目录的字符串。使用 getcwd() 方法获取字符串类型的当前工作目录并输出,代码如下:

import os  # 导入文件与操作系统相关模块

print(os.getcwd())  # 打印表示当前工作目录的字符串
 listdir()方法——返回指定路径下的目录名和文件名

listdir() 方法用于返回指定路径下的文件和目录的名称(不包括子孙目录)。语法格式如下:

os.listdir(path=".")

参数说明:

  1. path:表示一个路径,用于指定要获取的文件和目录的根目录,不能是文件路径。
  2. 返回值:返回一个列表,其中包含 path 路径下的目录和文件的名称(按字母顺序排列),但不包括 . 和 ..
mkdir()方法——创建一级目录
import os  # 导入文件与操作系统相关模块

os.mkdir(r'C:\Users\Administrator\Desktop\python_base\amo\qq1\wx1\amo1')
removedirs()方法——递归删除目录
import os  # 导入文件与操作系统相关模块

os.removedirs(r"C:\Users\Administrator\Desktop\python_base\amo\qq1\wx1\amo1")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值