目录
概述
首先, 我们来看打开文件,使用python的open 函数,
这是 Open 函数的参数列表,
file : 指的是我们要进行操作的文件, 也就是要open 的文件, 这里你传入绝对路径和相对路径都是可以的。
mode : 指的是目标文件的打开模式, 有三种基础的模式, 只读(r); 只写(w); 追加(a);
其余的各种模式见下表 :
调用open 函数之后还需要一个变量来保存打开的文件, 这来我们定义为 demo_file.
与你脑海里的大多数记忆相同, 打开之后还是需要close 的, 也就是调用 demo_file.close() 这个methods
当然了,在python中 这种 Open + close 的操作 可以使用 with...as...来替代,这里不再过多叙述。
只读模式
read
以只读模式打开文件之后, 我们开始读取文件的内容,
有三种方法, read, readline 和 readlines , 我们先来看 read方法
demo_file = open(file='story.txt', mode='r')
print(type(demo_file))
content = demo_file.read()
print(type(content))
print(content)
demo_file.close()
———————————————————— output-------------
<class '_io.TextIOWrapper'>
<class 'str'>
我叫王大锤
my name is dachui wang
read 就是简单的将open 的文件的内容全部读出来, 加载到你定义的变量当中, 这里是content
返回值的类型是 str
我们也可以自己定义要读取多少个字符串, 比如
content = demo_file.read(7)
print(content)
----------------output------------------
我叫王大锤
m
7个字符串, 这里应该是包含了换行符 \n, 不仅如此, 空格 \t 也会被当作是一个字符串。
readline
然后是 readline , 这个方法是读取文件中的某一行
demo_file = open(file='story.txt', mode='r')
content = demo_file.readline()
print(content)
demo_file.close()
---------- output -----------
我叫王大锤
我们看到这里输出了第一行的数据,当我们再次调用readline 的时候,就会输出下一条数据。
readlines
然后是readlines ,与之前的两种方法不同, 他的返回值的类型是一个 list
content = demo_file.readlines()
print(type(content))
print(content)
-------------output -------------
<class 'list'>
['我叫王大锤\n', 'my name is dachui wang']
我们可以看到, 列表中的每一个元素代表的是每一行的一些数据信息,其中也包括了换行符。
我们可以使用列表的索引来打印指定行的内容。
print(content[1])
-------output-----------
my name is dachui wang
这样一来,我们就可以引入for 循环来读取列表中的所有数据了。
【略。。。】
追加模式
下面我们来看向文件中 添加内容, 也就是我们上面所说的追加 (mode = a ),
demo_file = open(file='story.txt', mode='a')
demo_file.write('这是我追加的第一行!!!')
demo_file.write('这是我追加的第二行###')
demo_file.close()
执行之后不会有任何的返回值,但是他已经完成了txt文件的追加任务, 你可以打开txt文件查看一下。
另外要说的是要注意 添加换行符 。(\n )
写入模式(只写模式)
最后是 w 模式,也就是写入模式的介绍,
如果你使用了这个 w 模式, 你要注意, 你写入的东西会覆盖文件原本的内容,
所以要小心 使用
这是我使用 w 模式的结果, 第二次的内容完全覆盖了第一次的内容。
另外, 如果你打开了一个不存在的文件, 那么就会创建一个新文件
增补, 一些常用的方法
在使用read 这一系列的函数时, 常常会用到一下的两种方法,
01 strip()
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
参数
chars -- 移除字符串头尾指定的字符序列。
返回值
返回移除字符串头尾指定的字符生成的新字符串。