python持久化存储文件操作方法
作者:小蒜不次蒜 发布时间:2022-06-10 00:59:34
存储文件的重要
一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,。 默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。
要读取二进制文件,比如图片、视频等等,用'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)有2个参数: 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(待删除的文件名)
来源:https://blog.csdn.net/qq_46490950/article/details/118078091


猜你喜欢
- 简单演示import matplotlib.pyplot as pltimport numpy as np# 从[-1,1]中等距去50个数
- 本文实例讲述了JavaScript DOM节点操作方法。分享给大家供大家参考,具体如下:使用DOM可以新建HTML元素,也可以删除已有的HT
- MySQL Load Data 的多种用法一、LOAD 基本背景我们在数据库运维过程中难免会涉及到需要对文本数据进行处理,并导入
- 各大著名厂家、公司的banner广告设计欣赏,尺寸468x60,gif格式!有acer,阿尔卡特,AMD,中国电信,爱立信,Greatwal
- 1. 实例描述通过爬虫获取网页的信息时,有时需要登录网页后才可以获取网页中的可用数据,例如获取 GitHub 网页中的注册号码时,就需要先登
- mysql5.7版本:方法1: 用SET PASSWORD命令 格式:mysql> set password f
- 什么是高阶函数高阶函数就是能够把函数当成参数传递的函数就是高阶函数,换句话说如果一个函数的参数是函数,那么这个函数就是一个高阶函数。高阶函数
- SQL SERVER将某一列字段中的某个值替换为其他的值update 表名 set 列名 = REPLACE( 列名 ,'aa
- 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的
- 本文研究的主要是PyQt5打开文件对话框QFileDialog的代码示例,具体如下。单个文件打开 QFileDialog.getOpenFi
- 今天闲逛在网上时,看到一个11px大小的字体,显示却很清晰,赶紧查看站点的CSS,这字体称叫做:PMingLiu。效果相当不错,相比于我们使
- 目录列表拼接三种方式方式一:简简单单的“+”方法二:切片赋值方式三:列表自带的extend()列表去重的三种方式利用集合set的特性利用字典
- 前言笔者用的是mac开发,但是mac自带的php功能安装十分不方便,并且和线上的linux开发环境不一致。在没有用docker之前一直用va
- 今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教
- 背景今天客户问到一个问题。 我想新建一个账号给外部人员使用,但是我只想给他创建表的权限,这应该如何操作。开始可能认为这个问题很简单。我新建一
- 还记得以前在工作中,将爬来的其它网站的数据导到xml。但是会遇到一个问题:即网页会有ascII的控制字符。一开始以为是别人为了防止采集而加入
- 定义计算N的阶乘的函数1)使用循环计算阶乘def frac(n): r = 1 if n<=1:
- 在python的类中会使用到“self”,本文主要是谈谈类中的self和变量的关系。先看示例代码I。
- 有过相关经验的朋友都知道,Jscript的效率毕竟有限,在数组中查找数据时如果用常规的算法来做执行起来会很慢。例如在一个含500个字符串的d
- 一、handlers是什么?logging模块中包含的类用来自定义日志对象的规则(比如:设置日志输出格式、等级等)常用3个子类:Stream