python打卡练习之文件操作

python的文件操作涉及语法方面的内容较少,只需要练习几个与文件操作相关的函数。

  1. open()方法:

open()函数常用模式须使用两个参数,文件名和打开模式。文件名顾名思义就是文件的路径,而打开模式有以下几种:

 文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 完整的open()函数还有很多参数:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener:

然后open()方法会返回一个很奇怪的数据类型,名叫"_io.TextIOWrapper",可以理解为一个输入输出控制器。

使用了open()函数之后,必须保证使用close方法把文件关掉。准确的说,这样是为了释放这个文件供其他的进程使用。

f=open("hello.cpp",mode='r')#以只读方式打开文件
f.close()#关闭文件以释放该文件资源

 关闭的文件不能再进行读写操作,否则会触发ValueError错误。

接下来介绍fileObject类的一些重要方法。

read()方法:读取前n个字符

f.read(10)
#'#include <'

readline()方法,读取一整行:

注意读取之后,文件操作指针会移动到读取内容的尾部,而不是从开头开始读取。

f.readline()
#'#include <iostream>'
f.readline()
#'using namespace std;'

 readlines()方法,读取所有行,并返回一个列表。

f.readlines()
#['#include <iostream>\n','using namespace std;\n','int main(){\n','cout << "hello world" <<endl;\n','return 0;\n','}\n']

 tell()方法,返回从文件开头到指针位置的字符总数。

seek(offset,whence)方法,使指针移动offset距离,whence设置指针起始位置,

默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。

write()函数,用于向文件中写入字符串

writelines()函数,用于向文件中写入多行列表。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值