一、文件与路径
os.path对象的各种方法可以实现对路径的各种操作。
os.path.abspath(os.curdir) # 获取当前目录的绝对路径
os.path.abspath(__file__) # 获取当前文件的绝对路径
os.path.exists(path1) # 判断路径是否存在
os.path.isfile(path1) # 判断路径是否为文件
os.path.isdir(path1) # 判断路径是否为目录
os.makedirs(path1 + '/test') # 创建目录
os.rmdir(path1 + '/test') # 删除目录
os.rename(path1 + '/test.txt', path1 + '/test1.txt') # 重命名文件
os.remove(path1 + '/test1.txt') # 删除文件
os.listdir(path1) # 列出目录下的文件和目录
os.path.join(path1, 'test2.txt') # 拼接路径
os.path.split(path1 + '/test2.txt') # 分割路径
os.path.splitext(path1 + '/test2.txt') # 分离文件名和扩展名
二、文本文件
1.open
newfile = open("newfile.txt", "w")
newfile.write("Hello, world!")
newfile.close()
2.with open(推荐)
with open("newfile.txt", "w") as newfile:
newfile.write("Hello, world!")
3.区别
open 函数:需要手动调用 close 方法来关闭文件,一般要考虑异常处理。
with open 语句:自动管理文件的打开和关闭,即使在发生异常时也能确保文件被正确关闭。
4.文件打开模式
4.文件读写操作
newfile.write(s) # 写入内容
newfile.read() # 读内容 read(size) 可以指定读取多少字符,未指定时读取全部
newfile.readline() # 一次读取一行
newfile.readlines() # 以列表方式读取,一行是列表的一个元素
newfile.tell() # 获取当前文件可以读写的位置
newfile.seek() # 重新指定将要读写的位置
三、Json格式文件
使用标准库Json模块来进行Json文件处理。
1.Json与Python语言数据类型互相转化
2.转化示例
import json
# 示例1:将Python数据类型转换为JSON字符串
data = {
"name": "Alice",
"age": 30,
"city": "New York"
}
json_str = json.dumps(data)
print("JSON字符串:", json_str)
# 示例2:将JSON字符串转换为Python数据类型
json_str = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_str)
print("Python数据类型:", data)
# 示例3:将Python数据类型写入JSON文件
with open('data.json', 'w') as f:
json.dump(data, f)
# 示例4:从JSON文件读取Python数据类型
with open('data.json', 'r') as f:
data = json.load(f)
print("从文件读取的Python数据类型:", data)
3.dump与dumps、load与loads
dump 和 dumps:
dump 用于将Python对象序列化为JSON并写入文件。
dumps 用于将Python对象序列化为JSON字符串。
load 和 loads:
load 用于从文件中读取JSON数据并反序列化为Python对象。
loads 用于将JSON字符串反序列化为Python对象。
四、xml文件
标准库提供了xml库来处理xml文件,同时提供以下四个来同的子类都 可以用来来处理xml文件。
- DOM: 适用于需要全面访问和操作XML文档的场景。
- ElementTree: 适用于大多数XML处理任务,特别是对于中等大小的XML文档。
- Expat: 适用于处理非常大的XML文档,或者需要实时处理XML数据的场景。
- SAX: 适用于处理非常大的XML文档,或者需要实时处理XML数据的场景。
1.SAX
- 重写父类xml.sax.ContentHandler的一些方法,来处理xml数据。
- 创建一个解析器, 并设置解析器的事件处理器为我们创建的上面的子类。
- 然后解析xml文件即可
2.DOM(常用推荐)
xml.dom提供了两种解析器:xml.dom.minidom和xml.dom.pulldom。
1)xml.dom.minidom子模块
主要提供对xml文档的读、修改操作(在内存)。返回一个xml文件的一个文档对象Document
xml.dom.minidom.parse('learning_list.xml')
2)xml.dom.pulldom子模块
主要提供对xml文档的读取、修改(在内存)、创建操作。返回一个xml文件的DOMEventStream对象。
xml.dom.pulldom.parse('learning_list.xml')
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END