在 Python 中,若是想要操做文件,首先须要建立或者打开指定的文件,并建立一个文件对象,而这些工做能够经过内置的 open() 函数实现。函数
open() 函数用于建立或打开指定文件,该函数的经常使用语法格式以下:编码
file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])
此格式中,用 [] 括起来的部分为可选参数,便可以使用也能够省略。其中,各个参数所表明的含义以下:spa
file_name:要建立或打开文件的文件名称,该名称要用引号(单引号或双引号均可以)括起来。须要注意的是,若是要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名便可;不然,此参数须要指定打开文件所在的完整路径。指针
mode:可选参数,用于指定文件的打开模式。可选的打开模式(以下方表格)所示。若是不写,则默认以只读(r)模式打开文件。orm
buffering:可选参数,用于指定对文件作读写操做时,是否使用缓冲区(本节后续会详细介绍)。对象
encoding:手动设定打开文件时所使用的编码格式,不一样平台的 ecoding 参数值也不一样,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)。图片
open() 函数支持的文件打开模式以下:utf-8
模式 | 描述 |
r | 只读模式打开文件,读文件内容的指针会放在文件的开头。 |
rb | 以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,通常用于非文本文件,如图片文件、音频文件等。 |
r+ | 打开文件后,既能够从头读取文件内容,也能够从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。 |
rb+ | 以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,一般针对非文本文件(如音频文件)。 |
w | 以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。 |
wb | 以二进制格式、只写模式打开文件,通常用于非文本文件(如音频文件) |
w+ | 打开文件后,会对原有内容进行清空,并对该文件有读写权限。 |
wb+ | 以二进制格式、读写模式打开文件,通常用于非文本文件 |
a | 以追加模式打开一个文件,对文件只有写入权限,若是文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容以后);反之,则会建立新文件。 |
ab | 以二进制格式打开文件,并采用追加模式,对文件只有写权限。若是该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容以后);反之,则建立新文件。 |
a+ | 以读写模式打开文件;若是文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容以后);反之,则建立新文件。 |
ab+ | 以二进制模式打开文件,并采用追加模式,对文件具备读写权限,若是文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容以后);反之,则建立新文件。 |
1、建立文件ci
file = open('hello.txt','w')
运行结果会在当前执行脚本的目录下会建立一个hello.txt文件。博客
2、写入文件
file = open('hello.txt','w') print(file.write('码农博客\n')) # .write()方法是往文件里写入内容 file.close() # .close()方法是将文件关闭
运行结果:
5
运行结果的5是告诉咱们一共写入了5个字符。可是你打开文件看会出现乱码,这要怎么解决呢?
file = open('hello.txt','w',encoding='utf-8') # 将编码设定成utf-8编码 print(file.write('码农博客\n')) file.close()
这个时候你再打开文件,显示就是正常的。
3、读取文件
读取文件中的所有内容
file = open('hello.txt','r',encoding='utf8') print(file.read()) # read方法是读取文件中所有内容
运行结果:
码农博客
逐行读取文件的内容
file = open('hello.txt','r',encoding='utf8') print(file.readline()) # readline方法是逐行读取文件中的内容
运行结果:
码农博客
若是要打印第二行内容的话,那就再写一次“print(file.readline())”。
读取文件中所有内容并返回成列表
file = open('hello.txt','r',encoding='utf8') print(file.readlines()) # readlines方法是读取文件中全部内容,返回一个列表,并将每行内容当成列表中的一个元素
运行结果:
['码农博客\n']
4、with上下文
若是怕文件打开后忘记关闭,可使用with上下文,再执行完with下的代码以后,文件会自动关闭。
with open('hello.txt','r',encoding='utf8') as f: # as是给文件临时取名叫f print(f.readlines())
运行结果:
['码农博客\n']本文转自:https://www.myblou.com/archives/1446