第十六讲
一、文件读写
通过python我们可以对一些文件数据进行操作,文件包括txt、doc、xls、ppt等众多类型。
对于文件的操作一般分为三步走:
- 打开文件;
- 操作文件;
- 关闭文件;
1. 打开文件 open()
打开文件可以采用python内置方法open(),用于对文件进行读写操作。open()方法的返回值是一个file对象,我们将其赋值给一个变量(文件句柄),其基本的语法格式为:
f = open(file,mode='r',encoding=None) # 还有许多参数未涉及,可自行查看
需要注意的是,file参数可以给定当前工作目录下的文件名,如果文件非当前工作目录,需要输入完整的路径。mode是模式,经常使用到的模式有’r’、‘w’、'a’等,可以ctrl左键自行查看。encoding是编码或解码的格式,如果文本内容中有汉字,需要采用encoding = 'utf-8’才可进行读写操作。
常见的模式为:
'r' open for reading (default) # 可读,文件如果不存在则会报错
'w' open for writing, truncating the file first # 可写
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
2. f.readable()、f.read()、f.redaline()
我们现在来看一个案例,学习一些具体的操作。
在工作目录下新建一个txt文档:
然后在业务程序中我们可以读取该文件,通过文件句柄接收,判断是否可读:
f = open('text.txt') # 默认mode = 'r', encoding = None
print(f.readable()) # 判断程序是否可读,返回值为布尔值
---------------------
结果:
True
如果想要打印输出所有文本内容:
print(f.read()) # 读取全部内容,f.read()可传入参数n,代表读取前n个字符数的意思
-----------------
结果:
123
456
789
需要着重说一下n这个参数,还是接着上面的案例,我们来看一下不同的结果:
print(f.read(3))
--------------
结果:
123
我们将n = 4输入:
print(f.read(4))
--------------
结果:
123
当n = 3和4的时候,输出结果看似相同,实则不然。需要注意的是,换行符 \n 也算作一个字符,因而结果实则多了一个换行。并且还需要注意的是,打印输出内容后相应的光标位置也会发生变化,比如连续打印输出:
print(f