1.文件操作步骤
1.打开文件
2.读写文件
读:将文件内容读入到内存
写:将内存内容写入到文件
3.关闭文件
2.Python中操作文件的函数/方法
函数/方法 | 说明 |
open | 打开文件,并且返回文件操作对象 |
read | 将文件内容读取到内存 |
write | 将指定内容写入文件 |
close | 关闭文件 |
open函数负责打开文件,并且返回文件对象,read/write/close方法都是通过文件对象来调用。
3.read方法(读取文件)
open函数的第一个参数是要打开的文件名,如果文件存在,返回文件操作对象,如果文件不存在,会抛出异常。
read方法可以一次性读入并返回文件的所有内容。
close方法负责关闭文件,如果忘记关闭文件,会造成系统资源消耗,会影响到后续对文件的访问。
1 # 1.打开文件2 file = open("e:/测试文件.txt")3 # 2.读取文件4 text = file.read()5 print(text)6 # 3.关闭文件7 file.close()
说明:read方法执行后,会把文件指针移动到文件的末尾。在开发时,通常会先编写打开和关闭的代码,然后再编写针对文件的读/写操作。
4.open方法(打开文件)
open方法默认是以只读的方式打开文件,并且返回文件对象。
1 f = open("文件名","访问方式")
访问方式 | 说明 |
r | 只读模式打开文件,文件不存在,抛出异常 |
w | 只写模式打开文件,如果文件存在会被覆盖,文件不存在,创建新文件 |
a | 追加模式打开文件,如果文件已存在,文件指针会放到文件的结尾,如果文件不存在,创建新文件进行写入 |
r+ | 读写模式打开文件,文件指针在文件的开头,如果文件不存在,抛出异常 |
w+ | 读写模式打开文件,如果文件存在会被覆盖,文件不存在,创建新文件 |
a+ | 读写模式打开文件,如果该文件已存在,文件指针会放在文件的末尾,如果文件不存在,创建新文件进行写入 |
开发中更多的时候会以只读、只写的方式来操作文件。
1 # 1.打开文件2 file = open("e:/测试文件.txt", "w")3 # 2.写入文件4 file.write("济南冬天很冷\n")5 file.write("济南夏天很热\n")6 # 3.关闭文件7 file.close()
5.b模式
二进制模式,通常用来操作图片,视频等二进制文件,读写的时候是以bytes读写的,因此获取的是一个bytes而不是字符串,需要自己指定编码。
1 # -*- coding:utf-8 -*- 2 3 s = "hello world" 4 5 # file = open("d:\\test.txt", "w") 6 # file.write(s) # 没问题,可以正确写入 7 8 # file = open("d:\\test.txt", "wb") 9 # file.write(s) # 报错,需要一个bytes类型,但是传入的为str10 11 # TypeError: a bytes-like object is required, not 'str'12 13 b = bytes(s, "utf-8")14 file = open("d:\\test.txt", "wb")15 file.write(b)16 file.close()
6.按行读取文件内容
read方法读取大文件,占用内存,但是readline方法可以一次性读取一行内容,方法执行后,会把文件指针移动到下一行,准备再次读取。
1 # 1.打开文件 2 file = open("e:/测试文件.txt", "r") 3 # 2.读取文件 4 while True: 5 text = file.readline() 6 # 判断是否读到内容 7 if not text: 8 break 9 # 每读取一行的末尾已经有了一个"\n"10 print(text, end="")11 12 # 3.关闭文件13 file.close()
7.遍历文件
更多时候,我们会将文件对象当做一个迭代器来使用。
1 # -*- coding:utf-8 -*-2 3 4 file = open("d:\\test.txt", "r")5 6 for line in file:7 print(line, end="")
说明:我们在使用文件对象的方法操作文件时,如果文件很小,则使用read方法读取最方便,如果不确定文件的大小,反复使用read(size)也比较不错,如果是配置文件,调用readlines也很方便,很多情况下,使用for循环更好,速度也很快。
8.with关键字
为了防止打开文件后操作过程出现异常或者错误,或者没有close文件,Python提供了with关键字来保证文件会被正常关闭,使用了with关键字,就不需要执行close语句。
1 # -*- coding:utf-8 -*-2 3 4 with open("d:test.txt", "w") as f:5 f.write("hello, world")
9.文件/目录的常用管理操作
在Python中,如果希望实现创建,重命名,删除,改变路径,查看目录内容等功能,需要导入os模块。
文件操作
方法名 | 说明 | 示例 |
rename | 重命名文件 | os.rename(源文件名,目标文件名) |
remove | 删除文件 | os.remove(文件名) |
目录操作
方法名 | 说明 | 示例 |
listdir | 目录列表 | os.listdir(目录名) |
mkdir | 创建目录 | os.mkdir(目录名) |
rmdir | 删除目录 | os.rmdir(目录名) |
getcwd | 获取当前目录 | os.getcwd() |
chdir | 修改工作目录 | os.chdir(目标目录) |
path.isdir | 帕努单是否是文件 | os.path.isdir(文件路径) |