在字符串的 格式化 与 反格式化 中用到的 模块 和 方法

目录

一,Open函数使用

二,Json与pickle

一,json模块

1. 将 Python 对象转换为 JSON 字符串

2. 将 JSON 字符串解析为 Python 对象

3. 读取和写入 JSON 文件

4. 处理 JSON 中的特殊数据类型

5. 错误处理

二,pikel模块

1. 序列化 Python 对象

2. 反序列化 Python 对象

3. 处理自定义对象的序列化和反序列化

4. 使用 pickle.dumps() 和 pickle.loads()

5. 注意事项

三,Os模块的常见用法

1. 获取当前工作目录

2. 切换工作目录

3. 列出目录中的文件和子目录

4. 创建目录

5. 删除目录

6. 删除文件

7. 执行系统命令

8. 获取环境变量

9. 执行文件和目录操作的更多方法

10. 获取操作系统相关信息


一,Open函数使用

open函数的使用是用于打开一个文件,并返回文件对象。

打开文件后,可以通过文件对象进行读取、写入、关闭等操作。常用的文件对象方法有:

  • read(): 读取文件内容。
  • write(s): 写入字符串s到文件。
  • close(): 关闭文件。

示例代码:

# 以只读模式打开文件
file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

# 以写入模式打开文件
file = open('example.txt', 'w')
file.write('Hello, world!')
file.close()

在使用open函数打开文件后,最好使用with open语句来自动关闭文件,避免忘记手动关闭文件造成资源浪费。示例代码:

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

二,Json与pickle

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

一,json模块

以下是 json 模块的一些常见用法:

1. 将 Python 对象转换为 JSON 字符串

使用 json.dumps() 方法可以将 Python 对象(字典、列表等)转换为 JSON 格式的字符串。

import json

data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

json_string = json.dumps(data)
print(json_string)

输出:

{"name": "John", "age": 30, "city": "New York"}

2. 将 JSON 字符串解析为 Python 对象

使用 json.loads() 方法可以将 JSON 格式的字符串解析为 Python 对象(字典、列表等)。

json_string = '{"name": "John", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data['name'])
print(data['age'])
print(data['city'])

输出:

John
30
New York

3. 读取和写入 JSON 文件

可以使用 json.dump() 将 Python 对象直接写入 JSON 文件,以及使用 json.load() 从 JSON 文件读取数据。

写入 JSON 文件示例:

data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

with open('data.json', 'w') as f:
    json.dump(data, f)

读取 JSON 文件示例:

with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)

4. 处理 JSON 中的特殊数据类型

JSON 支持的数据类型包括字符串、数字、布尔值、数组、对象(字典)以及 null 值。json 模块可以处理 Python 中的大部分数据类型,并在序列化为 JSON 字符串时自动转换为适当的 JSON 格式。

例如,处理日期时间对象时,可以使用 default 参数来自定义序列化过程。

import json
from datetime import datetime

data = {
    'name': 'John',
    'age': 30,
    'timestamp': datetime.now()
}

# 自定义处理日期时间对象
def datetime_handler(x):
    if isinstance(x, datetime):
        return x.isoformat()

json_string = json.dumps(data, default=datetime_handler)
print(json_string)

5. 错误处理

在处理 JSON 数据时,可能会遇到不符合 JSON 格式的字符串,例如格式错误的 JSON 字符串。可以使用 json.JSONDecodeError 来捕获解析错误。

json_string = '{"name": "John", "age": 30, "city": "New York"'
try:
    data = json.loads(json_string)
    print(data)
except json.JSONDecodeError as e:
    print(f"JSON decode error: {e}")

这些是 json 模块的一些常见用法。它在处理数据序列化、反序列化以及文件操作时非常有用,是处理跨平台数据交换的重要工具之一。

二,pikel模块

pickle 模块是 Python 的标准库之一,用于序列化和反序列化 Python 对象。它能够将 Python 对象转换为字节流(即序列化),并且可以从字节流重新构建出原始的 Python 对象(即反序列化)。pickle 模块的主要特点是可以处理几乎所有的 Python 对象,包括自定义的类实例、函数、内置对象等。

以下是 pickle 模块的常见用法示例:

1. 序列化 Python 对象

使用 pickle.dump() 方法将 Python 对象序列化为字节流,并将其写入文件中。

import pickle

data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

# 序列化对象并写入文件
with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)

2. 反序列化 Python 对象

使用 pickle.load() 方法从文件中读取字节流并反序列化为 Python 对象。

import pickle

# 从文件中读取并反序列化对象
with open('data.pickle', 'rb') as f:
    data = pickle.load(f)
    print(data)

3. 处理自定义对象的序列化和反序列化

pickle 模块可以序列化和反序列化自定义的 Python 类的实例。只要对象是 Python 可序列化的,就可以通过 pickle 来处理。

import pickle

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person('Alice', 25)

# 序列化自定义对象
with open('person.pickle', 'wb') as f:
    pickle.dump(person, f)

# 反序列化对象
with open('person.pickle', 'rb') as f:
    loaded_person = pickle.load(f)
    print(loaded_person.name)
    print(loaded_person.age)

4. 使用 pickle.dumps() 和 pickle.loads()

除了直接操作文件外,还可以使用 pickle.dumps() 将对象序列化为字节流(而不是写入文件),并使用 pickle.loads() 将字节流反序列化为对象。

import pickle

data = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

# 将对象序列化为字节流
serialized_data = pickle.dumps(data)

# 反序列化字节流为对象
deserialized_data = pickle.loads(serialized_data)
print(deserialized_data)

5. 注意事项

  • 跨 Python 版本兼容性问题pickle 生成的序列化数据依赖于 Python 版本,不同 Python 版本之间的兼容性可能存在问题,因此在存储或传输 pickle 数据时要注意。
  • 安全性:反序列化 pickle 数据存在安全风险,因为恶意构造的 pickle 数据可能会执行任意代码。因此,不要从不受信任的源加载 pickle 数据。

总结来说,pickle 模块是 Python 中方便的对象持久化和数据交换工具,特别适用于在同一版本的 Python 环境中快速地序列化和反序列化对象。

三,Os模块的常见用法

os 模块是 Python 的标准库之一,提供了许多与操作系统交互的函数。它允许你执行文件和目录操作,管理进程,处理环境变量等

1. 获取当前工作目录

import os

current_dir = os.getcwd()
print("Current working directory:", current_dir)

2. 切换工作目录

import os

os.chdir('/path/to/new/directory')
print("Current working directory after change:", os.getcwd())

3. 列出目录中的文件和子目录

import os

files_and_dirs = os.listdir('/path/to/directory')
print("Files and directories:", files_and_dirs)

4. 创建目录

import os

os.makedirs('/path/to/new/directory', exist_ok=True)

5. 删除目录

import os

os.rmdir('/path/to/empty/directory')

6. 删除文件

import os

os.remove('/path/to/file.txt')

7. 执行系统命令

import os

os.system('ls -l')

8. 获取环境变量

import os

python_path = os.getenv('PYTHONPATH')
print("PYTHONPATH:", python_path)

9. 执行文件和目录操作的更多方法

  • os.path 模块提供了一些用于操作路径的有用函数,如 os.path.join()os.path.exists()os.path.isdir()os.path.isfile() 等。

10. 获取操作系统相关信息

import os

print("Operating system:", os.name)
print("Parent process ID:", os.getppid())
print("Process ID:", os.getpid())

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值