python持久化存储文件操作_python 文件存储

47 阅读6分钟

文件的打开模式
在这里插入图片描述
要读取二进制文件,比如图片、视频等等,用’rb’, ‘wb’, 'ab’等模式打开文件即可

# 1.打开文件
"""
mode:
 r:只能读文件
 w:只能写入(清空文件内容)
 a+:读写(追加)
"""
f = open('doc/hello.txt',mode='a')
# 2.文件的读写操作
f.write('\nhello python')
# 3. 文件的关闭
f.close()

文件最初内容:
在这里插入图片描述
代码运行结果:
在这里插入图片描述

3.File对象的属性:

在这里插入图片描述

4.File对象的常用方法

在这里插入图片描述

5. 指针定位

seek(offset, from)有2个参数: offset:偏移量 from:方向
0:表示文件开头;
1:表示当前位置;
2:表示文件末尾
1). 把位置设置为:从文件开头,偏移5个字节
2). 把位置设置为:文件最开始
3). 把位置设置为:文件最末尾

6.文件的关闭

方法一: 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,
并且操作系统同一时间能打开的文件数量也是有限的:

方法二: Python引入了with语句来自动帮我们调用close()方法

"""
with 语句
"""
with open('doc/test.txt','w+') as f:   #打开一个文件,如果不存在的话创建w+ 保存为f
    f.write('hello world\n')  #写入文件
    f.seek(0,0)   #移动指针位置到文件最开始
    #f.seek(0,2) #移动指针位置到文件末尾
    print("当前指针位置为:",f.tell())
    print(f.read())   #读取文件内容

代码运行结果:
在这里插入图片描述

二、os模块

os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小……

1.关于操作系统

import os
import platform
# 1.获取操作系统类型
print(os.name)
# 2.获取主机信息,windows系统使用platform模块,如果是linux系统直接使用os模块
"""
try: 可能出现报错的代码
excpt:可能出现异常,执行的内容
finally:是否有异常,都会执行的内容
"""
try:
    uname = os.uname()
except Exception:
    uname = platform.uname()
finally:
    print(uname)
# 3.获取系统的环境变量
envs  = os.environ
# os.environ.get('PASSWORD') 通过key值获取环境变量对应的value值
print(envs)

代码运行结果:
在这里插入图片描述

2.关于路径

# 1.判断是否为绝对路径
print(os.path.isabs('D:/python/运维项目/doc/test.txt'))
print(os.path.isabs('test.txt'))
# 2.生成绝对路径
print(os.path.abspath('D:/python/运维项目/doc/test.txt'))
print(os.path.abspath('test.txt'))
# 3.目录名和文件名的拼接
#os.path.dirname获取某个文件对应的目录名
#\_\_file\_\_是指当前文件
#join 拼接,将目录和文件名拼接起来
BASE_DIR = os.path.dirname(__file__)
setting_file = os.path.join(BASE_DIR,'dev.conf')
print(setting_file)
# 4.获取目录名或者文件名
filename = 'D:/python/运维项目/doc/test.txt'
print(os.path.basename(filename))
print(os.path.dirname(filename))

代码运行结果:
在这里插入图片描述

3.关于文件创建和删除

os模块中的rename()可以完成对文件的重命名操作。
rename(需要修改的文件名, 新的文件名)

os模块中的remove()可以完成对文件的删除操作
remove(待删除的文件名)

# 1.创建目录/删除目录
# mkdir -p sun/sdasd
os.mkdirs('sun/ss')  #递归创建目录
os.mkdir('sun')   #创建单个目录
os.rmdir('sun')   #删除目录
# 2.创建文件/删除文件 #win不支持
os.mknod('sun/ok.txt')
os.remove('sun/ok.txt')
# 3.文件重命名(mv)
os.rename('sun/ok.txt','sun/test.txt')
# 4.判断文件或者目录是否存在
print(os.path.exists('test.txt'))
# 5.分离后缀名和文件名
print(os.path.splitext('hello.txt'))
print(os.path.split('hello.txt'))
# 6.将目录名和文件名分离
print(os.path.split('D:/python/运维项目/doc/test.txt'))

三、json模块详解

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。

这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

python类型数据和JSON数据格式互相转换规则

在这里插入图片描述
python 中str类型到JSON中转为unicode类型,None转为null,dict对应object;
pyhton中的集合不能转成json格式。

在这里插入图片描述

1.将python对象编码成json字符串

import json
# 1.将python对象编码成json字符串
users = {'name':'sun','age':18,'city':'西安'}
json_str = json.dumps(users)
with open('doc/test.json','w') as f:
    json.dump(users, f , ensure_ascii=False,indent=4)
    print('存储成功')
print(json_str,type(json_str))

代码运行结果:
在这里插入图片描述
在这里插入图片描述

2.将json字符串解码成python对象

with open('doc/test.json') as f:
    python_obj = json.load(f)
    print(python_obj,type(python_obj))

代码运行结果:
在这里插入图片描述

四、pandas模块

1.打开交互式terminal安装模块

pip install pandas -i https://pypi.douban.com/simple


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/27ceae6bd4014b4f986c1804a539dcb8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407246&x-signature=Hl5Fcsg3skZ%2FNkzMy%2B9tmCOEms8%3D)

**感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:**



① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)



**了解详情:https://docs.qq.com/doc/DSnl3ZGlhT1RDaVhV**