Python-文件操作
2023-09-11 14:17:08 时间
文件
文件的打开和关闭
文件的路径
- 绝对路径:指的是绝对位置,完整的描述了目标所在地,所有目录层级关系是一目了然的
- 例如:
E:\python
,从电脑的盘符开始,表示的就是一个绝对路径。
- 例如:
- 相对路径:是从当前文件所在的文件夹开始的路径
text.txt
,是从当前文件夹中查找test.txt文件./test.txt
,也是在当前文件夹里查找test.txt
文件,./
表示的是当前文件夹../test.txt
,从当前文件夹的上一级文件夹里查找test.txt
文件。../
表示的是上一级文件夹demo/test.txt
,在当前文件夹里查找demo这个文件夹,并在这个文件夹里查找test.txt
文件
访问模式
访问模式 | 说明 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,则报错。这是默认模式 |
w | 打开一个文件只用与写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新的文件 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说新的内容将被写入到已有内容之后。如果该文件不存在,创建新文件进行写入 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果文件不存在,创新文件用于读写 |
w+ | 打开一个文件用于读写,如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头 |
wb | 以二进制打来一个文件只用与写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头 |
wb+ | 以二进制格式打开一个文件用于读写,如果该文件已存在则将其覆盖 。如果该文件不存在,创建新文件。 |
ab+ | 以二进制格式打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
打开文件/创建文件
- 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件路径,访问模式)
# open(文件路径,访问模式)
# 模式 : w 可写 r 可读
# 创建文件
open('test.txt','w')
# 打开文件
f = open('test.txt','w')
# 文件里面写一句话(英文)
f.write('hello word')
# 文件的关闭
fp = open('a.txt','w')
fp.write('hello')
fp.close()
文件的读写
写数据
- write方法
fp = open('test.txt','w')
fp.write('hello,world,sectest \n' * 5)
fp.close()
# 如果再次运行这段代码,还是打印五
# 如果文件存在 会先清空原来的数据 然后在写
# 想要在执行每一次之后都要追加数据 模式由w变为a 就可以没你执行追加数据了
读数据
fp = open('test.txt','r')
# 默认情况下 read是一字节一字节的读 效率比较低
content = fp.read()
print(content)
# readline() 是一行一行的读取 但是只能读一行
content = fp.readline()
print(content)
# readlines 可以按照行来读取 并且以一个列表形式返回
content = fp.readlines()
print(content)
文件的序列化和反序列化
序列化
- 将对象(列表、字典、元组等)转换为字符序列
fp = open('test.txt','w')
# 默认情况下 对象是无法写入到文件中 如果想写入到文件 那么必须使用序列化操作
name_list = ['zhangshan','lisi']
fp.write(name_list) # TypeError: write() argument must be str, not list
dumps()
- 我们在使用scrapy框架的时候 该框架会返回一个对象 我们要将对象写入到文件中 就要使用json.dumps
# (1)创建文件
f = open('test.txt','w')
# (2) 定义列表
name_list = ['zhangshan','lisi']
# (3)倒入json模块到该文件中
import json
# (4) 序列化
# 将python 对象编程json字符串
names = json.dumps(name_list)
f.write(names)
f.close
dump
fp = open('test.txt','w')
name_list = ['zhangshan','lisi']
import json
# 相当于names = json.dumps(ame_list) 和fp.write(names)
json.dump(name_list,fp)
fp.close()
反序列化
- 将json的字符串变成一个python对象
f = open('ext.txt','r')
content = f.read()
print(type(content)) # str
loads
f = open('ext.txt','r')
content = f.read()
import json
result = json.loads(content)
print(type(result))
f.close()
load
f = open('test.txt','r')
import json
result = json.load(f)
print(type(result))
f.close()
相关文章
- Python判断文件是否存在的三种方法
- 【Python】python 日期操作
- Python MySQLdb模块连接操作mysql数据库实例_python
- 在Python中操作文件之truncate()方法的使用教程
- Python“文件操作”Excel篇(上)
- python: 安装DeOldify库:黑白图片上色(Python 3.7.15)
- 用PYTHON实现将电脑里的所有文件按大小排序,便于清理
- 小白学 Python(18):基础文件操作
- Python语言学习:Python语言学习之python包/库package的简介(模块的封装/模块路径搜索/模块导入方法/自定义导入模块实现华氏-摄氏温度转换案例应用)、使用方法、管理工具之详细攻略
- Python语言编程学习:文件路径变量修改,利用os模块固定文件父路径,变换文件子路径实现代码
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- Python学习59:操作文件和目录
- 【LeetCode Python实现】13. 罗马数字转整数(简单)
- 【Android 逆向】APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )
- Python 23种设计模式全(python例子)
- python中读取json文件报错,TypeError:the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
- Python文件读写的操作
- Python kafka操作实例(kafka-python)
- python中的文件的追加操作
- python文件读取操作练习题(统计单词)
- 〖Python自动化办公篇⑦〗- word文件自动化 - 实操之筛选简历
- python使用技巧(二十六):批量复制图片或文件到另一文件目录