环境:windows 版本python3
这里讨论常用的文件打开方法
python的文件操作很简单,但是依然要遵循先打开后操作再关闭的原则。
先来看这样一个例子:
with open('book.txt') as file_object:
contents = file_object.read()
print(contents)
这个示例的作用是读取名为“book.txt”的文件并打印它的全部内容。
我们来分析一下,这对于后面内容的掌握将更为有利。
第一行代码:
函数open(),无论对文件进行什么样的操作,打开它是第一步,打开后才能访问,open()接受的参数为需要操作的文件名称,函数open()将返回一个表示问价的对象,在这里,“file_object”就是存储这个对象的文件变量,接下来的操作将围绕它展开。
关键字with,with在这里作用是当我们不需要访问文件时将其关闭,我们注意到在这里我们调用了open()却没有调用close(),就是关键字with的作用,这样做的好处是我们不需要自行判断文件需要在哪里关闭,以免在错误的位置调用了close()时导致程序出错。
如果调用close(),程序将会是下面这样:
file_object = open('book.txt')
contents = file_object.read()
print(contents)
file_object.close()
结果和上面是完全相同的
方法read(),方法read()的作用是读取整个文件,我们将读取后的内容保存在了变量“contents”中,接下来打印“contents”就可以得到整个文件的内容。
这里需要注意一点,上述的文件“book.txt”和你当前的程序文件在同一目录下才可以这样操作,如果想要操作其他目录的文件需要输入完整的路径。
接下来介绍文件的写入
来看一个例子:`
with open('programming.txt','w') as file_object:
file_object.write('I love python.')
上述的代码和之前读取文件的样子很相似,不同的地方就是后面的打开模式*‘w’*,open()函数有非常多的打开模式,分别对应你对文件操作不同的需求,例举如下:
模式 | 功能 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |