[Python3]Python讀寫文件的方法

      前言:在腳本開發中,讀寫文件是使用非常廣泛的,下面就推薦一種讀寫文件的方法:

 

一、讀文件

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.modeAccess文件打开时使用的访问模式
file.encoding文件所使用的编码
file.name文件名
file.newlines未读取到行分隔符时为None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束的列表
file.softspace为0表示在输出一数据后,要加上一个空格符,1表示不加。这个属性一般程序员用不着,由程序内部使用

 


版权声明:本文为gsjthxy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。