Python 文件读取操作详解
当前工作目录
每个运行再计算机上的应用程序,都有一个“当前工作目录”,或称之为cwd,python中可以调用原生os包下的方法对文件目录进行简单操作。
- os.getcwd() 取得当前工作路径的字符串
- os.chdir(str) 改变当前工作目录至str路径
绝对路径与相对路径
- 绝对路径:从根文件夹开始
- 相对路径:相对于当前工作目录
其中包含两个特殊的字符 (.) 和(…) 其中单个的点(.) 表示当前工作目录的缩写,两个点(…)表示父文件夹。
创建新文件夹
- os.makedirs(path) 创建path,如果path中的文件夹不存在则会创建。
os.path 模块
- os.path.join(str1,str2,str3,…)将多个文件夹名称的字符串组合成一个路径字符串
- os.path.abspath(path) 返回参数的绝对路径字符串,用于将相对路径转换为绝对路径
- os.path.isabs(path) 如果path是一个绝对路径,返回True,反之返回False
- os.path.relpath(path,start) 返回一个从start到path 的相对路径的字符串
- os.path.split(path) 返回一个由路径和文件名组成的元组
- os.path.dirname(path) 返回 path中的路径
- os.path.basename(path) 返回path中的文件名
- os.path.seq 文件夹分隔符
import os
path = os.path.join("D:\\","workfile","繁琐工作自动化","Readfile")
print("path =", path)
print(os.path.abspath(".\\"))
print(os.path.isabs(path))
print(os.path.isabs(".\\"))
print("relpath",os.path.relpath("D:\\",".\\"))
print(os.path.split(path))
print((os.path.dirname(path),os.path.basename(path)))
运行结果: ##查看文件大小和文件夹内容
- os.path.getsize(path) 返回path中文件的字节数
- os.listdir(path) 返回文件夹path下的所有文件的字符串的列表
检查文件有效性
- os.path.isfile(path) 如果 path 参数存在,并且是一个文件,返回 True,否则返回 False
- os.path.exists(path) 如果 path 参数所指的文件或文件夹存在返回 True,否则返回 False
- os.path.isdir(path) 如果 path 参数存在,并且是一个文件夹返回 True,否则返回 False
文件读写
在python的文件读写中总共有三个步骤:
- 调用 open()函数,返回一个File对象
- 调用File对象,执行read() 或write()
- 调用file对象的close(),关闭该文件
注意对文件调用以后一定要执行close关闭该文件对象
open()函数打开文件
使用open()函数打开文件时首先需要向其中传入文件的路径参数,可以是绝对路径,也可以是相对路径,后面跟一个字符串指定读取的模式,常用的读取模式有:
- r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
- rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
- w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
具体可见以下: open 函数打开模式 总的来说就是几个基本的模式 r,w,a 后面跟 b + 附加功能
几个常用的读取文件的方法,以下file为前面的打开文件的file对象:
- file.read(n) 读取n个字节
- file.readline() 读取一行
- file.readlines() 读取所有行,以列表保存
注意readlines在被读取的文件比较大时会吃内存。
写入文件
需要写入文件时,在open()函数的读写模式中就不能“只读”
参考: 《Python编程快速上手—让繁琐工作自动化》
|