本篇主要介绍文件目录、文件的一些操作方法。
其中目录的操作需要引入os模块:
importos
操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中。
1、目录操作方法
1.1 查看当前目录
importos
print(os.getcwd())#查看当前目录
输出:
>>>D:\Code
1.2 返回指定目录下的所有文件
importos
path =r"D:\Code"
print(os.listdir(path))
会以列表的形式,返回所有文件
输出:
>>>['.idea', '4.py', 'log', 'test.txt', 'venv', '函数.py', '基本数据类型.py','文件读写.py', '输入和输出.py']
1.3 目录创建、重命名、删除
importos
path =r"D:\Code"
# 在当前目录D:\Code下创建目录
os.mkdir("test")#方式1:直接创建test
os.mkdir(r"D:\Code\test")#方式2:输入完整目录进行创建
# 重命名刚刚创建的目录
os.rename("test","testpy")
# 删掉刚刚创建的目录
os.rmdir("testpy")#方式1:直接删除test
os.rmdir(r"D:\Code\testpy")#方式2:输入完整目录进行删除
1.4 判断目录是否存在
1.5 目录拼接、拆分
输出:
>>>D:\Code\test\test.txt
>>>('D:\\Code\\test', 'test.txt')
>>>('D:\\Code\\test\\test', '.txt')
2、打开文件/关闭文件
文件的打开和关闭用open()和close()来实现
open()函数主要参数介绍:
参数file:文件路径
参数mode:打开方式,常用的mode有
r 以只读的方式打开文件,文件读取光标会放到文件的开头
w 打开一个文件,只用于写入,如果文件存在则打开文件,写入的内容会覆盖原内容,如果文件不存在,则新生成一个文件。
a 打开一个文件用于追加。如果文件存在,则文件读写光标会放到文件的末尾,新写入的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
+ 打开一个文件进行更新(可读可写)。
b 二进制模式。
还有r+、w+、a+、rb、wb、ab等。可自行参考官方文档。
参数encoding:编码方式 (encoding="utf-8"一般都是utf-8)
errors:错误处理 (errors="ignore"表示忽略错误)
path =r"D:\Code\test.txt"
f =open(path,"r")
#f = open(path, "r", encoding="utf-8", errors="ignore")
f.close()
3、读写文件
3.1 read() 读取文件内容
path =r"D:\Code\test.txt"
f =open(path,"r")
txt = f.read()#读取文件全部内容
print(txt)
f.close()
3.2 read(n) 读取指定字符数
path =r"D:\Code\test.txt"
f =open(path,"r")
txt = f.read(2)#读取指定字符 -1 表示读取全部内容
print(txt)
f.close()
3.3 readline() 读取整行
path =r"D:\Code\test.txt"
f =open(path,"r")
txt = f.readline()#读取整行
print(txt)
f.close()
3.4 readlines() 读取所有行并返回列表
path =r"D:\Code\test.txt"
f =open(path,"r")
txt = f.readlines()#读取所有行并返回列表
print(txt)
f.close()
输出:
>>>['hello 智数分析1!\n', 'hello 智数分析2!\n', 'hello 智数分析3!\n', 'hello 智数分析4!']
3.5 写文件
内容先写入内存缓冲区,然后再由内存缓冲区写入到文件。
path =r"D:\Code\test.txt"
f =open(path,"a")
f.write("hello python")#将信息写入内存缓冲区
f.flush()#刷新内存缓冲区
f.close()
4、文件读写异常
前面已经介绍过了python异常处理,我们在处理文件时也经常会遇到一些异常,会导致f.close()无法执行。
如果也用try......except......finally方式去处理,程序代码会比较复杂。
try:
f = openr(r"D:\Code\test.txt",'r')
print(f.read())
finally:
iff:
f.close()
Python提供了with语句来帮我们自动调用close()方法,以后我们要处理文件时,都可以用以下这种写法。
path =r"D:\Code\test.txt"
withopen(path,"r")asf:
print(f.read())
领取专属 10元无门槛券
私享最新 技术干货