第一章 Python基础入门之文件读与写详解

系列文章目录

第一章 Python基础入门之Hello World
第一章 Python基础入门之变量与数据类型
第一章 Python基础入门之ASCII(字符编码和二进制)
第一章 Python基础入门之单多行的注释和输出
第一章 Python基础入门之INPUT用户输入
第一章 Python基础入门之IF ELSE条件判断
第一章 Python基础入门之While循环与For循环
第一章 Python基础入门之什么是模块(库)
第一章 Python基础入门之什么是.pyc
第一章 Python基础入门之数据类型
第一章 Python基础入门之Python3数据类型中的bytes和str的区别



前言

Python系列学习


一、相关内容

  • 文件只有三种模式:r代表只能读;w代表只能写;a代表可以在文末追加文字
  • 在w模式下,打开open文件时,又接着write新的文字。那么结果是:清空原文件的内容,写入新的内容。这种情况会造成删库影响。切记!!切记!!切记!!
# 一、打开文件以及r/w/a

# 1、打开文件。r=read、w=write、a=append
sing = open('《yesterday once more》歌词','a')  #文件句柄
# 2、写入
sing.write('真是好听!\n')
sing.write('再听一遍。')
# 3、关闭
sing.close()

# 实例1:打开文件,只能读
sing = open('《yesterday once more》歌词','r')  #文件句柄
print(sing.read())

# 实例2:打开文件,只能写(注意:此处写代表重写文件,会造成删库影响。谨慎使用!!!!!切记!!!)
sing = open('《yesterday once more》歌词','w')  #文件句柄
sing.write('真是好听!\n')
sing.write('再听一遍。')

# 实例3:打开文件,并且在文末追加文字
sing = open('《yesterday once more》歌词','a')  #文件句柄
sing.write('\n真是好听!\n')
sing.write('再听一遍。')

# 实例4:打开文件,既能读也能写(类似于追加)(读写)
sing = open('《yesterday once more》歌词','r+')  #文件句柄
sing.readline()    # 先打印3行,重复3次
sing.readline()
sing.readline()
sing.tell()
sing.write('--------------------------新加----------------')
sing.readline()    #继续打印

# 实例5:打开文件,既能写也能读(写读)
sing = open('《yesterday once more》歌词','r+')  #文件句柄
sing.write('------新的一句---')    # 先创建一个新文件写4行
sing.write('------新的一句---')
sing.write('------新的一句---')
sing.write('------新的一句---')
print(sing.tell())
sing.seek(5)
print(sing.tell())
print(sing.readline())
sing.write('!!!!!!!!!!!!!!!继续写!!!!!!')   #继续写入
sing.closed    #关闭

# 实例6:打开文件,追加读写
sing = open('《yesterday once more》歌词','a+')  #文件句柄

# 实例7:打开文件,读取二进制文件(两种情况下使用rb:(1)网络传输只能二进制格式;(2)一些下载文件的读取打开)
sing = open('《yesterday once more》歌词','rb')  #文件句柄

#实例6:打开文件,写二进制文件
sing = open('《yesterday once more》歌词','wb')  #文件句柄

# 二、用法

# tell和seek的用法
sing = open('《yesterday once more》歌词', 'r')  # 文件句柄
print(sing.tell())                              #该tell指初始字符所在的位置的index
print(sing.read(50))
print(sing.tell())                              #该tell指读取50行字符所在的位置的index
sing.seek(0)                                    #该seek指返回到指定index的位置
print(sing.readline())

# 查看文件使用的字符编码
sing = open('《yesterday once more》歌词', 'r')  # 文件句柄
print(sing.encoding)

# buffer类型对象用于以面向字节的格式显示给定对象的内部数据。
# Python对缓冲区的主要用途是存储和操作巨大的数据数组并在不创建副本的情况下处理它们。
sing = open('《yesterday once more》歌词', 'r')  # 文件句柄
print(sing.buffer)
# buffer方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
# 一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用flush()方法。
sing = open('《yesterday once more》歌词', 'r')  # 文件句柄
print(sing.flush())

# flush实现进度条作用
import sys,time

for i in range(20):
    sys.stdout.write('#')   #stdout指标准输出,stdin指标准输入
    sys.stdout.flush()
    time.sleep(0.1)         #指定时间间隔

# truncate指截断
sing = open('《yesterday once more》歌词', 'a')  # 文件句柄
sing.truncate(sing.seek(20) )                   #先是指定到第20个字符,然后从20开始截断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值