能同经闻

主页 > 聚焦 >

Python自学文件操作

  python视频教程栏目介绍自学文件操作

  (免费):python视频教程

  我是一个学习Python初学者,近期刚学完文件操作。特地分享
文章分为两部分,第一部分为文件读取类型以及读取的方式,第二部分为练习题

  文件读取类型

  文件读取的操作方式有以下几种:只读,只写,追加,读写,写读

  只读 r

  f = open('test',mode='r',encoding='utf-8') # 打开文件,读取方式为`r`,编码为UTF-8 f1 = f.read() # 读取文件 print(f1) #打印文件 f.close() # 关闭文件

  只读类型下,文件不能被修改

  读写 r+

  f = open('test',mode='rb',encoding='utf-8') # 读取方式变为`r+` file = f.read() f1 = f.read() f.close()

  当读取方式为r+时,文件可以被写入,但是打印出来的是写入前所读取的

  二进制读 rb
代码略去,文件以二进制的模式读取。

  剩下的我将以表格形式统一展现,可以参照对比以上代码

  读取方式补充r只读,不可被修改r+读写,光标在前,从第一个位置开始修改,打印出修改的字符数rb以byte方式读取w只写,若写入的目标文件没有,则创建,有则清空再写入wb转换为byte类型写入a打开文件,把光标移动到有文字的后面,再进行追加ab以byet类型加入

  注:r+有两个表现,一个是读写,还有一个是写读。需要注意。另,w+和a+我没有写,是因为学习阶段用的相对来说较少

  读取功能

  我先以表格形式展示,再进行详解

  读取方式用于场合read()以字符读,可添加参数(I),读前i个字符seek()调整光标位置tell()调整光标位置,需放置于seek()前readline()一行一行的读readlines()将每一行当成列表中元素读取,换行自带 \ntruncate()截取一段读出来,从后往前读

  例如有一个名为test的文件,文件内容如下:

  456926667

  这是一个长为10个字符的字符串

  f = open('test',mode='r',encoding='utf-8') # 打开文件,读取方式为`r`,编码为UTF-8 f1 = f.read(5) # 读取文件中前5个字符 print(f1) #打印文件 f.close() # 关闭文件

  打印结果为

  45692

  f = open('test',mode='w',encoding='utf-8') # 打开文件,读取方式为`w`,编码为UTF-8 f1 = f.seek() print(f1) #打印第五个字符 f.close() # 关闭文件

  打印结果为

  2

  剩下的我就不一一做演示,有需要可以自己试一试

  文件读取方式

  f = open('test',mode='w',encoding='utf-8')

  此文件读取方式,仅能读取一个文件,另外代码多

  with open('test',mode='w',encoding='utf-8') as f: pass

  此文件读取方式,能同时读取多个文件,且代码量相对来说少

  当需要同时操作两个或两个文件以上时,with open 方法会相对来说简易许多