首页 > 编程语言 >Python 文件操作与管理:Open函数、Json与Pickle、Os模块

Python 文件操作与管理:Open函数、Json与Pickle、Os模块

时间:2024-07-19 09:00:25浏览次数:13  
标签:Os 文件 open Python os data 序列化 Pickle

1.open函数的使用

Python 中的 open() 函数是处理文件的标准方法。它允许你打开一个文件,并对其进行读取、写入或追加操作

open(file,mode,encoding)函数的格式:

file:文件路径
mode:打开方式(
                读: r
                写: w   读完之后光标停留在最后读取的位置
                追加: a
                可读写    r+(文件不存在就报错)
                可读写    w+(文件不存在就创建,如果文件内有内容会覆盖)
                可读写    a+(光标默认停留在最后,不可直接读取到内容,使用seek(0)调整光标位置),无论光标在哪,默认在最后写入
                读取二进制  rb
                写二进制  wb
encoding:解码方式

 1.1 打开文件并读取内容:

# 打开文件进行读取
with open('example.txt', 'r') as f:
    content = f.read()
    print(content)

其他的常见方法:

readable():是否可读,返回True or False
read():读取整个文件,返回字符串
readline():只读取一行,返回字符串
readlines():逐行读取整个文件,将每行的字符串放进一个列表,返回列表

 1.2 写入文件:

覆盖原文件内容,若没有文件则创建

# 打开文件进行写入
with open('output.txt', 'w') as f:
    f.write('Hello, World!\n')
    f.write('This is a new line.')
其他的常见方法:
writeable:是否可写,返回True or False
write:每次写入一行,但是不会自动换行,没有文件会自动创建,写入的数据必须是字符串
writelines:每次写入多条数据,参数是iterable类型数据,也不会自动换行

1.3 追加内容到文件末尾: 

# 打开文件进行追加
with open('example.txt', 'a') as f:
    f.write('\nThis is appended content.')

 2. 数据序列化:Json与Pickle

在 Python 中,jsonpickle 是两种常用的数据序列化和反序列化模块,用于将数据转换为文件中可存储或传输的格式。

2.1 Json 序列化与反序列化
import json

# 将 Python 对象转换为 JSON 字符串并写入文件
data = {'name': 'Alice', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as f:
    json.dump(data, f)

# 从 JSON 文件中读取数据并解析为 Python 对象
with open('data.json', 'r') as f:
    loaded_data = json.load(f)
    print(loaded_data)
2.2 Pickle 序列化与反序列化:
import pickle

# 将 Python 对象序列化并写入文件
data = {'name': 'Bob', 'age': 25, 'city': 'San Francisco'}
with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)

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

3. 文件和目录管理:os 模块

Python 的 os 模块提供了许多与操作系统交互和文件系统操作相关的函数。

3.1 文件和目录操作示例:
import os

# 获取当前工作目录
print(os.getcwd())

# 创建目录
os.mkdir('my_directory')

# 列出目录中的文件
print(os.listdir('.'))

# 删除文件
os.remove('unnecessary_file.txt')

# 删除目录
os.rmdir('my_directory')
3.2 路径操作与文件属性:
# 检查路径是否存在
print(os.path.exists('data.json'))

# 获取文件大小
print(os.path.getsize('data.json'))

# 分离文件名与路径
print(os.path.split('/path/to/file.txt'))

# 检查是否是文件或目录
print(os.path.isfile('data.json'))
print(os.path.isdir('my_directory'))

结论

本文介绍了 Python 中常用的文件操作方法 open() 函数,以及数据序列化和反序列化的 jsonpickle 模块,最后探讨了 os 模块在文件系统操作中的应用。通过这些内容,你可以更好地理解和利用 Python 进行文件管理和数据处理的技巧。

希望本文能帮助你在 Python 开发中更加熟练地处理文件和操作系统相关任务。如果有任何疑问或建议,请留言讨论!

标签:Os,文件,open,Python,os,data,序列化,Pickle
From: https://blog.csdn.net/2201_76129403/article/details/140531707

相关文章

  • Python数据获取(网页视频、音频版)
    爬取数据,上一章有介绍,不懂流言私信或者评论交流即可,在Python中编写爬虫通常涉及以下几个步骤:发送HTTP请求:使用requests库向目标网站发送请求。解析网页内容:使用BeautifulSoup从HTML中解析出需要的数据。下载视频文件:使用requests下载视频文件。保存到本地:将下载的视频文件......
  • 0基础学python-17:文件读写
    目录前言文件读写三步走:        打开文件-->读写文件-->关闭文件一、打开文件1.文件位置绝对位置:相对位置:2.open()方法二、读写文件1.读取文件2.写入文件三、关闭文件1.close()2.with语句前言        读写文件是最常见的IO操作。Python内置......
  • PHP由mb_strpos与mb_substr执行差异导致的小trick
    前言这个其实不算啥大洞,主要是我遇到两次了,第一次是在黄河流域做那个题的时候,还有一次是ctfshow西瓜杯的题,做到了gxngxngxn师傅出的套皮。就以这道ezphp入手吧。分析&EXP一看传参传个gxngxngxn就能读/etc/passwd,事实也的确如此。但是我们显然是要做到打这个反序列化做到任意......
  • 打卡第十三天(啊啊,我的键盘被我敲坏了,两个按键不灵敏了痛苦!这几天没有登陆boos求职,只学
    封装数据的隐藏,应禁止直接访问一个对象中数据的实际表示,应通过操作接口来访问,称为信息隐藏属性私有,get/set1.提高程序的安全性,保护数据2.隐藏代码的实现细节3.统一接口4.系统过客维护增加了packageoop.demo04;​//类privatepublicclassStudent{​  //......
  • 【Python爬虫实战入门】:笔趣阁小说爬取,一篇教你爬虫入门
    文章目录......
  • Python模块之datetime
    模块作用简介:Pythontimestrptime()函数根据指定的格式把一个时间字符串解析为时间元组。官方英文帮助:https://docs.python.org/3/library/官方简体中文帮助:https://docs.python.org/zh-cn/3/library/必要操作:>>>fromdatetimeimportdatetime安装:python......
  • Python按照图片尺寸(毫米mm)调整图片尺寸(像素pixel)
    #按照图片尺寸(毫米mm)调整图片尺寸(像素)defresize_image_by_mm(input_image_path,output_image_path,width_mm=35,height_mm=49):"""输入参数::paraminput_image_path:原图片路径:paramoutput_image_path:输出图片路径:paramwidth_mm:默认2英寸证......
  • cocos2d-x 4.0在manjaro 24.0.4编译
    相关版本:gcc/g++14.1.1cmake3.30.01、先参考install-deps-linux.sh下载对应依赖2、cocos2d-x-4.0/templates/lua-template-default/CMakeLists.txt中66行62│if(ANDROID)63│#changeAPP_NAMEtothesharelibrarynameforAndroid,it'svaluedepend......
  • oem执行os命令
    [oracle@prdb19~]$emclicreate_named_credential-cred_name="hostv1"-auth_target_type="host"-cred_type="HostCreds"-attributes="HostUserName:oracle;HostPassword:oracle"CredentialHOSTV1created.[oracle@prdb1......
  • centos6忘记root密码,进入单用户修改
    1、开机按任意键进入启动菜单,如下2、按a或e进入grub界面3、选中内核按e进入内核编辑模式4、输入1或者是S或者s或者single,然后按enter回车键5、按enter回到启动菜单后,按b进入系统6、进入系统后,输入passwd修改密码......