【Python学习笔记】- 04 文件操作

对文件的操作流程

  • 打开文件,得到文件句柄并赋值给一个变量
  • 通过句柄对文件进行操作
  • 关闭文件

准备一个待读取的文件

《斗破苍穹》是一本连载于起点中文网的古装玄幻小说,作者是起点白金作家天蚕土豆(李虎),已完结。这里是属于斗气的世界,没有花俏艳丽的魔法,有的,仅仅是繁衍到巅峰的斗气。
心潮澎湃,无限幻想,迎风挥击千层浪,少年不败热血!
等级制度:斗之气,斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗尊巅峰,半圣,斗圣,斗帝。
远古八族:萧族、古族、魂族、药族、雷族、炎族、石族、灵族。
灵魂境界:凡境→灵境→天境→帝境,每境又分初期→中期→后期→巅峰→大圆满。灵境者可炼制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)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值