IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python-持久化存储文件操作 -> 正文阅读

[Python知识库]python-持久化存储文件操作

一、文件的基本操作

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

在这里插入图片描述
在这里插入图片描述

对上图做一个 解释:
常用的mode有 r、w、a
r: r是读操作,默认就有。(但是当mode变成其他类型时 就不一定了)
w:涉及w的mode,无论是w还是w+,都会先清空文件中的内容
a: a算是最温和的mode了,他不会清空文件中的内容。但是没有读权限。
+:a+和r+都有读写操作。

二、文件操作中的with语句

由上述可知,在对文件进行open及读写操作后,最后要使用close关掉它,释放资源。
这里就牵扯到文件的关闭:
方法一: 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,
并且操作系统同一时间能打开的文件数量也是有限的:

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

下面有两段代码理解一下:
示例一:

with open('doc/test',mode='w+') as f:
    f.write('javavaaaa\n')
    print(f.read())  

这里的结果为空,就是print读取不到结果,为什么呢?
因为涉及到指针,当把javavaaaa添加进文件中后,指针指向了最后一个字符,他之后当然什么都没有,所以才输出为空。

最后 对上述做一个总结:
在这里插入图片描述

with open('doc/test',mode='w+') as f:
    f.write('java\n')
    f.seek(0,0)
    print('当前指针的位置:',f.tell())
    f.seek(0,2)
    print('当前指针的位置:',f.tell())
    print(f.read())

seek(offset, from)有2个参数: offset:偏移量 from:方向
0:表示文件开头;
1:表示当前位置;
2:表示文件末尾

三、os模块

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

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')
print(envs)

#4. 判断是否为绝对路径以及生成绝对路径
print(os.path.isabs('D:\Program Files\pycharm\自动化运维项目\day04'))
print(os.path.isabs('day05'))
print(os.path.abspath('day06'))

# 5. 目录名和文件名拼接
# os.path.dirname获取某个文件对应的目录名
# __file__当前文件
# join拼接, 将目录名和文件名拼接起来。
print(os.path.dirname(__file__))  ##获取当前文件的绝对路径
print(os.path.basename(__file__))  ## 获取当前文件名
BASE_DIR = os.path.dirname(__file__)
setting_file = os.path.join(BASE_DIR,'hellooo.conf')
print(setting_file)

四、json模块

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

python类型数据和JSON数据格式互相转换规则
在这里插入图片描述

import  json


# 1. 将python对象编码成json字符串
users = {'name':'westos', "age":18, 'city':'西安'}
json_str = json.dumps(users)
with open('doc/hello.json', 'w') as f:
    # ensure_ascii=False:中文可以成功存储
    # indent=4: 缩进为4个空格
    json.dump(users, f, ensure_ascii=False, indent=4)
    print("存储成功")
print(json_str, type(json_str))

# 2. 将json字符串解码成python对象
with open('doc/hello.json') as f:
    python_obj = json.load(f)
    print(python_obj, type(python_obj))

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 16:52:04  更:2022-06-26 16:52:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 15:01:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码