1、文件打开

使用 open() 函数打开文件。它需要两个参数,第一个参数是文件路径或文件名,第二个是文件的打开模式。模式通常是下面这样的:

"r",以只读模式打开,你只能读取文件但不能编辑/删除文件的任何内容

"w",以写入模式打开,如果文件存在将会删除里面的所有内容,然后打开这个文件进行写入

"a",以追加模式打开,写入到文件中的任何数据将自动添加到末尾

默认的模式为只读模式。

2、文件关闭

打开文件后我们应该总是关闭文件。我们使用方法 close() 完成这个操作。

>>> fobj.close()

始终确保你显式关闭每个打开的文件,一旦它的工作完成你没有任何理由保持打开文件。因为程序能打开的文件数量是有上限的。如果你超出了这个限制,没有任何可靠的方法恢复,因此程序可能会崩溃。每个打开的文件关联的数据结构(文件描述符/句柄/文件锁…)都要消耗一些主存资源。因此如果许多打开的文件没用了你可以结束大量的内存浪费,并且文件打开时始终存在数据损坏或丢失的可能性。

3、文件读取

使用 read() 方法一次性读取整个文件。

read(size) 有一个可选的参数 size,用于指定字符串长度。如果没有指定 size  或者指定为负数,就会读取并返回整个文件。

readline() 每次读取文件的一行。

使用 readlines() 方法读取所有行到一个列表中。

可以循环遍历文件对象来读取文件中的每一行。

>>> fobj = open('sample.txt')
>>> for x in fobj:
...     print(x, end = '')
...
I love Python
I love shiyanlou
>>> fobj.close()

4、文件写入

通过 write() 方法

案例:提取文件中数字

提取文本文件中的数字并将其换行写入该文本文件,例如输入aabb123cc,输出aabb123cc   \n123

f1=open('e:/py/ttt.txt')
s = f1.read()
res = ""
# 循环字符串里的每个字符,判断是否为数字
for char in s:
    if char.isdigit():
        res += char
print(res)
#开启追加模式,避免写入覆盖。
f1 = open('e:/py/ttt.txt','w')
f1.write('\n'+res)
f1.close()
f1=open('e:/py/ttt.txt')
s = f1.read()
res = ""
# 循环字符串里的每个字符,判断是否为数字
for char in s:
    if char.isdigit():
        res += char
print(res)
#开启追加模式,避免写入覆盖。
f1 = open('e:/py/ttt.txt','w')
f1.write('\n'+res)
f1.close()