Python文件读写技巧

一、Python/ target=_blank class=infotextkey>Python绝对路径和相对路径
明确一个文件所在的路径,有 2 种表示方式,分别是:
◆绝对路径:总是从根文件夹开始,Window 系统中以盘符(C:、D:)作为根文件夹,而 OS X 或者 linux 系统中以 / 作为根文件夹 。
◆相对路径:指的是文件相对于当前工作目录所在的位置 。例如,当前工作目录为 "C:windowsSystem32",若文件demo.txt 就位于这个System32 文件夹下,则 demo.txt 的相对路径表示为 ".demo.txt"(其中 . 就表示当前所在目录)
os 模块
Python中使用os模块来文件名称或文件路径:
import os # 获取当前文件名称 print(os.path.basename(os.path.abspath(__file__))) # 21_1_os_path.py # 获取当前文件的绝对路径 print(__file__) # C:/auto_test/common_auto_test_frame/demo/python_base/21_1_os_path.py print(os.path.abspath(__file__)) # C:auto_testcommon_auto_test_framedemopython_base21_1_os_path.py # 获取当前文件所在目录,以下两个方法均可 print(os.path.abspath(".")) # C:auto_testcommon_auto_test_framedemopython_base print(os.path.dirname(os.path.abspath(__file__))) # C:auto_testcommon_auto_test_framedemopython_base二、Python读取文件
Python 中,对文件的操作有很多种,常见的操作包括创建、删除、修改权限、读取、写入等,这些操作可大致分为以下 2 类:
? 删除、修改权限:作用于文件本身,属于系统级操作 。
【Python文件读写技巧】? 写入、读取:是文件最常用的操作,作用于文件的内容,属于应用级操作 。
文件的应用级操作可以分为以下 3 步,每一步都需要借助对应的函数实现:
 

  1. 打开文件:使用 open() 函数,该函数会返回一个文件对象;
  2. 对已打开文件做读/写操作:读取文件内容可使用 read()、readline() 以及 readlines() 函数;向文件中写入内容,可以使用write() 函数 。
  3. 关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用 close() 函数 。
1.open()函数详解
  • r:只读模式
  • b:以二进制格式
  • w:只写模式
  • a:追加模式
  • 写模式
 
模式
意义
注意事项
r
只读模式打开文件,读文件内容的指针会放在文件的开头 。
rb
以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等
r+
打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容
操作的文件必须存在
rb+
以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)
w
以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容
wb
以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件)
若文件存在,会清空其原有内容(覆 盖文件);反之,则创建新文件
w+
打开文件后,会对原有内容进行清空,并对该文件有读写权限
wb+
以二进制格式、读写模式打开文件,一般用于非文本文件
a
以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件
ab
以二进制格式打开文件,并采用追加模式,对文件只有写权限 。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件
a+
以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后),反之,则创建新文件
ab+
以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件
open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:
 
file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])
 
此格式中,用 [] 括起来的部分为可选参数 。其中,常用参数所代表的含义如下: