python-文件-基本使用方法

1. 打开文件open()

  • 打开文件并以流对象返回
  • 失败则提示IOError

1.1 准备工作
在任意磁盘下新建.txt文件,在文件里随便写点东西。例如:F:\OpenFileDemo.txt

1.2 open()方法的基本语法及常用参数

  • file--------------------文件路径
  • mode----------------文件权限
  • encoding-----------以何种编码格式打开(默认:cp936)(常用:utf-8、gbk)
open(file, mode='r', buffering=-1, encoding=None,
         errors=None, newline=None, closefd=True, opener=None) -> file object

1.3 mode的几种参数

权限解释
'r'只读方式打开文件(默认)
'w'写入方式打开文件,会覆盖已存在的文件
'x文件存在,此方式打开会报异常
'a'写入方式打开,如果文件存在,则在末尾追加写入
'b'以二进制方式打开文件
't'以文本模式打开(默认)
'+'可读写方式,(可添加到其它方式中使用)
'U'通用换行符支持

1.4 open()使用实例
注意:

  • \\ 转义
  • encoding = ‘utf-8’ 别的报错,看情况
  • 根据返回的流对象可查看基本参数情况
# 打开文件 获取流对象
	Openfiledemo = open('F:\\OpenFileDemo.txt','r',encoding = 'utf-8')
	Openfiledemo
	# 基本参数情况
	输出:<_io.TextIOWrapper name='F:\\OpenFileDemo.txt' mode='r' encoding='utf-8'>

2. 文件对象的几种常用方法

文件对象方法执行操作
f.close()关闭文件
f.read(size=-1)读取文件的size个字符,未给定或者负值,读取所有,并以字符串返回
f.readline()以写入方式打开,如果文件存在,则在末尾追加
f.write(str)将字符串str写入文件
f.writelines(seq)向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
f.seek(offset,from)在文件中移动文件指针,从from(0:起始,1:当前,2:末尾)偏移offset个字节
f.tell()返回当前在文件中位置
2.1 read()
  • 别忘了 close() 关闭
  • 注意:出现' '空,表示已经读取到文件末尾了,用seek()改变指针位置
  • ()----括号内规定显示的长度,负数表示读取剩余所有字符
# 打开文件 获取流对象
	Openfiledemo = open('F:\\OpenFileDemo.txt','r',encoding = 'utf-8')
# 
	Openfiledemo.read ()
# 返回文件内容
…………………………………………

# 打开文件 获取流对象
	demo= open('F:\\OpenFileDemo.txt','r',encoding = 'utf-8')
# 
	demo.read (10)
# 返回文件内容
	输出:'A:文字是人类用表意'

在这里插入图片描述

2.2 tell() 返回当前在文件中的位置(以字节码形式计算)
  • 在UTF-8编码中:1中文占3个字节,1个中文标点占3字节。一个英文字符等于一个字节,英文标点占一个字节。
demo = open('F://OpenFileDemo.txt','r',encoding='utf-8')
demo.read(4)
'张三:文'
demo.tell ()
输出:12    # 四个中文字符,12个字节
2.3 seek(offset,from)改变指针位置

from:参数

  • 0 开头
  • 1 当前位置
  • 2结尾

offset :参数

  • 任意数字
  • 不能处于单个字符中间 ,处于中间会报UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
	demo.seek (21,0)
	21        # (19,20,22,23,都处于字符中间位置)
	demo.read (-1)
	输出:'张三:……'
2.4 readline () 显示当前行剩余的
	demo.readline ()
	输出:'李四:现代文字大……'
2.5 把文件转换成list/set/tuple等显示
  • 如果行间有回车的话,会把每一行当成一个元素,中间用,隔开
  • 根据前边的提示,用for循环,格式化输出文件

如下:
在这里插入图片描述

2.5.1 for()循环,格式化输出文件

低效率版
如下图
在这里插入图片描述
高效率版:直接用for循环遍历open()的对象

如下图:
在这里插入图片描述

2.6 write() 写入,
  • 调用write()方法后,数据会存入缓存区里,必须flush(),或者close()后,文本才会被存入文本里
  • write() 会返回写入字符个数
    w权限,原文件会被覆盖
path = r'F:/OpenFileDemo.txt'
demo = open(path,'w',encoding='utf-8')
demo.write ('第③次添加\n')
输出 6
demo.flush()

代码:
在这里插入图片描述
写入文件:
在这里插入图片描述

a权限 -追加,文本不会被覆盖,在文件最后进行添加
代码:
在这里插入图片描述
写入到文件里
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值