Python文件持久化存储与OS模块操作详解

橘子海
橘子海
发布时间:2026-10-14 | 2人浏览过
原创

本文详细介绍Python中文件的持久化存储方法,涵盖打开模式、读写操作及文件关闭技巧。深入解析文件指针seek函数的偏移量与方向参数,并结合os模块讲解跨平台系统信息获取、环境变量读取、路径处理及文件重命名删除等实用操作,帮助开发者掌握Python文件处理核心技能。

存储文件的重要

程序运行过程中经过复杂计算得出结果,若不及时将这些数据保存下来,一旦重启电脑或程序结束,所有数据都将丢失。默认情况下,数据加载和结果保存均位于内存中,程序执行完毕后,内存中的数据结构会被释放。

若要读取二进制文件,例如图片或视频文件,只需使用'rb'、'wb'或'ab'等模式打开文件即可实现读写操作。

mode参数定义了文件的操作模式: r: 仅允许读取文件 w: 仅允许写入,且会清空文件原有内容 a+: 允许读写,新写入的内容追加到文件末尾

打开文件示例: f = open('doc/hello.txt', mode='a') 接下来进行文件的读写操作: f.write('\nhello python') 最后务必关闭文件: f.close()


f = open('C:/Users/Shinelon/PycharmProjects/pythonProject1/python/westos',mode='a+')
f.write('\nxinxiedeo')

执行结果如下: 假设文件westos中原本包含以下内容:

执行上述命令后,新内容便被添加到了文件中。

指针的概念

关于文件指针:seek(offset, from)函数包含两个参数,offset表示偏移量,from表示方向。其中,0代表文件开头,1代表当前位置,2代表文件末尾。

文件的关闭

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

方法二:Python引入了with语句,可以自动帮我们调用close()方法,无需手动管理文件关闭。


with open('/root/PycharmProjects/pythonProject1/4/test.txt','w+') as f:
    f.write('hello world\n')
    f.seek(0,0)   #移动指针位置到文件最开始
    print("当前指针位置为:",f.tell())
    print(f.read())   #读取文件内容

执行和结果如下:

如果需要修改指针位置:


with open('/root/PycharmProjects/pythonProject1/4/test.txt','w+') as f:
    f.write('hello world\n')
    f.seek(0,2)  #移动指针位置到文件末尾
    print("当前指针位置为:",f.tell())
    print(f.read())   #读取文件内容

那么输出如下:

OS模块

功能: os模块语义为操作系统,用于处理与操作系统相关的功能,且具有跨平台特性。例如显示当前目录下所有文件、删除某个文件、获取文件大小等。

获取操作系统的类型


import os #Linux操作系统
import platform #windows操作系统
print(os.name)
# 2.获取主机信息,windows系统使用platform模块,如果是linux系统直接使用os模块

结果如下:

我们需要完善代码: 由于不确定目标系统是Windows还是Linux,因此需要用到 try: 可能报错的执行内容! excpt: 可能异常的执行内容! finally: 都会执行的内容!


import os
import platform
try:
	uname = os.uname()
except :
	uname = platform.uname()
finally:
	print(uname)

结果如下:

获得系统的环境变量!


import os

envs  = os.environ
print(envs)

结果如下:

文件的路径问题也很重要: 首先需要判断路径是否正确。


import os
print(os.path.isabs('/root/PycharmProjects/pythonProject1/4/test.txt'))
print(os.path.isabs('test.txt'))

结果如下:

生成绝对路径:


import os
print(os.path.abspath('/root/PycharmProjects/pythonProject1/4/test.txt'))
print(os.path.abspath('test.txt'))

结果如下:

目录名和文件名的拼接

#os.path.dirname用于获取某个文件对应的目录名 #__file__代表当前文件 #join用于拼接,将目录和文件名组合起来


import os
BASE_DIR = os.path.dirname(__file__)
setting_file = os.path.join(BASE_DIR,'dev.conf')
print(setting_file)

结果如下:

获取目录名或者文件名


import os
filename = 'D:/root/westos/test.txt'
print(os.path.basename(filename)) #输出文件名
print(os.path.dirname(filename)) #输出文件所在目录

结果如下:

介绍文件的创建和删除

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

os模块中的remove()函数可以完成对文件的删除操作。 语法为:remove(待删除的文件名)

以上就是Python持久化存储文件操作的详细内容,更多关于Python存储文件的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表