python 基础:文件操作加强

一. 知识点
二. 代码练习

"""
功能详解
"""
f = open('大圣', mode='r+', encoding='utf-8')
content = f.read(3)     # 可指定读多少个字符,读出来的都是字符
print(content)      # 原文PYTHON、打印结果:PYT
f.close()

f = open('大圣', mode='r+', encoding='utf-8')
f.seek(3)
content = f.read()
print(content)      # 打印结果:HON
f.close()

f = open('大圣', mode='r+', encoding='utf-8')
f.seek(3)
content = f.read()
print(content)      # 原文:遇见未知的自己、打印结果:见未知的自己
f.close()
"""
- 光标操作 seek() 是按照字节去确定光标的位置
- 因为 UTF-8 1个中文用3个字节去表示,所以f.seek(3)仅移动了一个中文
- 中文如果使用 f.seek(2) 会报错
"""

f = open('大圣', mode='r+', encoding='utf-8')
f.seek(3)
print(f.tell())     # f.tell() ——> 返回光标的位置
f.close()

f = open('大圣', mode='a+', encoding='utf-8')
f.write('GG')       # 更新为 PYTHONGG
count = f.tell()    # 找到光标位置赋值给count
f.seek(count-3)     # 重新定位光标到向前三个字符
print(f.read())     # 原文PYTHON、打印结果:NGG
f.close()
"""
断点续传的应用
 - 先知道断在哪儿:f.tell() ——> 读光标
 - 之后将光标移到断点处:count = f.tell() f.seek(count-3) ——> 重新定位光标
"""

f = open('大圣', mode='r+', encoding='utf-8')
line1 = f.readline()    # 按行读,读第一行
print(line1)
f.close()

f = open('大圣', mode='r+', encoding='utf-8')
line2 = f.readlines()   # 一行一行的读,每一行作为列表的一个元素,添加到list中
print(line2)    # 打印结果:['PYTHON,JavaScript\n', 'JAVA\n', 'WEB']
f.close()

f = open('大圣', mode='r+', encoding='utf-8')
f.truncate(3)   # 对原文件以字符为单位进行截取,原文:PYTHON、f.truncate(2)之后,原文更新为PY
f.close()

f = open('大圣', mode='r+', encoding='utf-8')
for line in f:      # 打开一个文件,对句柄进行循环
    print(line)
f.close()
"""
- 注意:该方式应该有节制的使用,一般使用一行一行的读,或者指定读多少,不然文件过大会爆炸
"""

with open('大圣', mode='r+', encoding='utf-8') as f:
    print(f.read())
"""
- 该读取方式自动关闭,不用close()
- 注意该方式有缩进
- 该方式可同时打开多个文件(见下)
- with open('大圣', mode='r+', encoding='utf-8') as f,open('大圣', mode='r+', encoding='utf-8') as obj:
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值