第5章 文件及文件夹操作
文件操作
打开文件
open(文件路径,访问模式,encoding=编码方式) :只能打开已存在的文件,否则报错
访问模式:
r :只读(默认)
w :只写(覆盖)
~ 打开一个已经存在的文件,不存在则创建一个新的文件
~ w模式会覆盖之前文件中的内容
a :只写(追加)
# 打开当前目录下文件 f = open('test.txt','w',encoding='UTF-8') f.close()
# 打开相对路径下的文件 f = open('file/test.txt','w',encoding='UTF-8') f.close()
# 打开绝对路径下的文件 f = open('d://test.txt','w',encoding='UTF-8') f.close()
写文件
write(data) :向文件中写入字符串,文件不存在则创建
# w 模式:【只写】w模式会覆盖之前文件中的内容 fw = open('file/test.txt','w',encoding='UTF-8') fw.write('你好') fw.close()
# a 模式:【追加】 fa = open('test.txt','a',encoding='UTF-8') fa.write('大家好') fa.close()
writelines(data) :向文件中写入字符串序列(列表、元祖),文件不存在则创建
f = open('file/test.txt','w',encoding='UTF-8') f.writelines(['张三\n','李四\n','王五\n']) f.close()
读文件
read() :读取全部
fr = open('file/test.txt','r',encoding='UTF-8') readall = fr.read() print(readall)
readlines() :逐行读取全部,并将每一行返回一个列表
fr = open('file/test.txt','r',encoding='UTF-8') # 逐行读取全部,并将每一行返回一个列表 readlines = fr.readlines() print(readlines)
readline() :读取一行,每次读取从上一行读取的游标开始读取下一行
fr = open('file/test.txt','r',encoding='UTF-8') # 读取一行,每次读取从上一行读取的游标开始读取下一行 readline1 = fr.readline() readline2 = fr.readline() print('readline1={},readline2={}'.format(readline1,readline2))
关闭文件
# 安全打开关闭文件 - 执行完自动关闭文件 with open('file/test.txt','w',encoding='UTF-8') as f: f.write('你好')
文件夹操作
import os # 创建目录 os.mkdir(path) os.mkdir('filedir')
# 获取当前目录 path = os.getcwd() print(path)
# 获取指定目录下的文件及文件夹列表(不获取子目录下的文件) filelist_now = os.listdir() filelist_path = os.listdir('../') print('当前目录文件列表:{}\n上级目录文件列表:{}'.format(filelist_now,filelist_path))
# 删除空文件夹(删除非空文件夹报错) os.rmdir('filedir')
import shutil # 删除非空文件夹(空/非空文件夹均可删除) shutil.rmtree('filedir')
# 切换目录 os.chdir('../') new_path = os.getcwd() print(new_path)