前言:在腳本開發中,讀寫文件是使用非常廣泛的,下面就推薦一種讀寫文件的方法:
一、讀文件
def read_file(file_name=None):
with open(file_name, 'r') as f:
line_list = f.readlines()
return line_list
#要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如读取GBK编码的文件:
def read_file_gbk(file_name=None):
with open(file_name, 'r', encoding='gbk') as f:
line_list = f.readlines()
return line_list
#如果要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可
def read_file_bin(file_name=None):
with open(file_name, 'rb') as f:
line_list = f.readlines()
return line_list
二、寫文件
#追加模式
def write_file_use_a(file_name=None, string=None):
with open(file_name, 'a') as f:
f.write(string)
return True
#覆蓋模式
def write_file_use_w(file_name=None, string=None):
with open(file_name, 'w') as f:
f.write(string)
return True
三、文件的打開方式
| 模式 | 描述 |
|---|---|
| r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
| rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
| r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
| rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
| w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
| a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
| ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
四、文件對象的屬性
| 文件对象属性 | 描 述 |
|---|---|
| file.closed | 表示文件已经被关闭,否则为False |
| file.mode | Access文件打开时使用的访问模式 |
| file.encoding | 文件所使用的编码 |
| file.name | 文件名 |
| file.newlines | 未读取到行分隔符时为None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束的列表 |
| file.softspace | 为0表示在输出一数据后,要加上一个空格符,1表示不加。这个属性一般程序员用不着,由程序内部使用 |
版权声明:本文为gsjthxy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。