文件读写
文件读的操作步骤
文件打开
file = open("文件路径以及文件名","打开模式"
文件关闭
file.close()
------------------
## 读
```python
# 第一步,打开文件(以只读模式)
file = open("book.txt","r")
# 第二步,读取文件
file.read()
# 第三步,关闭文件
file.close()
遍历打开文件中的每一行
with open("book.txt","r",encoding="UTF-8") as b
for i in b.readlines():
print(i)
- read() :括号内可以写数字,表示的是读取多少个字符,默认读取所有
- readline:一次读取文件的一行内容
- readlines:一次读取文件的所有内容,一行内容为一个元素,以列表的形式展示
文件的打开模式
写
# 第一步,打开文件(以只写模式)
file = open("book.txt","w")
# 第二步,写入文件
file.write("内容")
# 第三步,关闭文件
file.close()
生成备份文件
file_Name = input("请输入要备份的文件名")
file_1 = open(file_Name,"r")
# index 是找到file_name中‘.’的索引值
index = file_Name.rfind('.')
if index > 0:
new_name = file_Name[:index]+"备份"+file_Name[index:]
else:
new_name = file_Name+"备份"
file_2 = open(new_name,"w")
count = file_1.read()
file_2.write(count)
file_1.close()
file_2.close()
获取文件当前的读写位置
file.tell()
文件下表从0开始,文件打开时,指针在0
file = open("bbb.txt", encoding="utf-8")
print(file.tell())
content = file.read(15)
print(content)
print(file.tell())
file.close()
查看与修改文件的读写位置,seek(offset,from)
- offest:偏移的字节数
- from:从哪开始,三个选择
0:从文件开始,默认
1:从文件的当前位置开始,文件以非二进制的模式打开,只能跳转0
2:文件末尾开始
file = open(("aaa.txt"),"r+")
print(file.tell())
file.seek(5,0)
print(file.tell())
print(file.read(5))
print(file.tell())
print(file.seek(0,1)) # 从文件当前位置偏移0个字节
print(file.seek(5,1)) # 从文件当前位置偏移5个字节
file.close()
删除指定的文件
- 需要引入os模块
格式: os.remove("文件名")
import os
os.remove("bbb.tst")
pickle.dump方法和pickle.load方法的运用
import pickle
class Person:
def __init__(self,name,age,sex,id):
self.name = name
self.age = age
self.sex = sex
self.id = id
def learn(self):
print("我喜欢学习Python语言")
#
#
zs = Person("张三", 23, "男", 12345678)
ls = Person("里斯", 20, "男", 1234567890)
print(zs.age)
dict_1 = {}
dict_1[zs.id] = zs
dict_1[ls.id] = ls
print(dict_1[zs.id])
# 这里输出的内存地址
print(dict_1[ls.id])
# 将字典保存至文本文件中(.txt)
file = open("E:\project\rotect.txt", "wb") # 这里不支持encoding="utf-8"
# write只能写入字符串内容,不能直接存字典
pickle.dump(dict_1,file)
file.close()
#
file = open("E:\project\rotect.txt", "rb") # 这里不支持encoding="utf-8"
# pick.load 用于读出数据
count = pickle.load(file)
dict_2 = count
print(type(dict_2), dict_2)