对文件的操作流程
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
准备一个待读取的文件
《斗破苍穹》是一本连载于起点中文网的古装玄幻小说,作者是起点白金作家天蚕土豆(李虎),已完结。这里是属于斗气的世界,没有花俏艳丽的魔法,有的,仅仅是繁衍到巅峰的斗气。
心潮澎湃,无限幻想,迎风挥击千层浪,少年不败热血!
等级制度:斗之气,斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗尊巅峰,半圣,斗圣,斗帝。
远古八族:萧族、古族、魂族、药族、雷族、炎族、石族、灵族。
灵魂境界:凡境→灵境→天境→帝境,每境又分初期→中期→后期→巅峰→大圆满。灵境者可炼制8品丹药,天境者可炼制9品丹药,帝境者可炼制帝品丹药
丹药品级分为十品:一品→二品→三品→四品→五品→六品→七品→八品→九品→帝品
斗技等级制度:天阶斗技,地阶斗技,玄阶斗技,黄阶斗技(注:顺序有所不同)
基本操作
打开文件的模式有:
- r,只读模式(默认)
- w,只写模式
- a,追加模式
“w”表示可以同时读写
- r+:可读写文件
- w+:写读
- a+:同a
“U”表示在读取时,可以将\r \n \r\n自动转换成 \n(与r或r+同时使用)
- rU
- r+U
“b”表示处理二进制文件
使用场景:网络传输
- rb
- wb
- ab
'''
最最基础的操作
data = open(r'day03\\datas\\dpcq.txt', encoding='utf-8').read()
print(data)
'''
'''
常规的操作
f = open(r'day03\\datas\\dpcq.txt', 'r+', encoding='utf-8') # 文件句柄
data = f.read()
print(data)
f.write("\n>>>>>这是我写的数据<<<<<<") # 写入文件
f.close() # 关闭文件
'''
'''
读取固定行数
f = open(r'day03\\datas\\dpcq.txt', 'r+', encoding='utf-8')
# 读取前五行
# for i in range(5):
# print(f.readline())
# f.close()
for line in f.readlines(): # readlines()可以将文件转化成数组,每行数据一个元素
print(line.strip())
'''
'''
读取,并在读取到某一行时跳过
f = open(r'day03\\datas\\dpcq.txt', 'r+', encoding='utf-8')
# 不推荐
# for index, line in enumerate(f.readlines()):
# if index == 5:
# print('---------->我是分割线<----------')
# continue
# print(line.strip())
# 推荐:效率最高
count = 0
for line in f:
if count == 5:
print('---------->我是分割线<----------')
count += 1
continue
print(line.strip())
count += 1
f.close()
'''
'''
其他方法
'''
f = open(r'day03\\datas\\dpcq.txt', 'r+', encoding='utf-8')
print(f.readline())
# 打印光标位置
print(f.tell()) # tell()是按照字符的个数来记录位置
# 移动光标
f.seek(0)
print(f.tell())
# 打印文件编码
print(f.encoding)
# f.flush() : 将缓存中的数据强制写到硬盘中
进度条案例:
import sys
import time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
文件修改:
f = open(r'day03\\datas\\dpcq.txt', 'r', encoding='utf-8')
f_new = open(r'day03\\datas\\dpcq.new.txt', 'w', encoding='utf-8')
for line in f:
if '起点' in line:
line = line.replace('起点', '腾讯企鹅')
f_new.write(line)