文件操作
文件打开操作
知识点:
打开文件生成文件对象:变量接收文件对象 = open(文件路径,文件模式,文件编码)
注意事项:
1.文件路径:必须传入
2.文件模式:可以不传,默认为r模式。
注意:r模式下文件路径必须存在,否则报错
模式分类:主要有r:读 w:覆盖写 a:追加写
注意:w和a模式,如果文件路径不存在,辉仔顶创建
3.文件编码:
注意:一般编码都会修改为utf-8
编码分类:主要有gbk(汉字国标扩展)和utf-8(通用的万国码)
示例:
"""
# open(文件路径,文件模式,文件编码): 文件路径必须提供,文件模式默认读:r模式
# 注意: r模式情况下,如果文件路径不存在,会直接报错FileNotFoundError
"""
f1 = open('test1.txt')
# cp936: GBK编码在936代码页(codepage) GB2312:国标:常用汉字 -> GBK:国标扩展:除了常用汉字还有各类繁体字等
print(f1) # <_io.TextIOWrapper name='test1.txt' mode='r' encoding='cp936'>
f2 = open('main.py', encoding='utf8')
print(f2) # <_io.TextIOWrapper name='main.py' mode='r' encoding='utf8'>
# 注意: w和a模式,如果文件路径不存在,会自动创建
f3 = open('test2.txt', mode='w', encoding='utf8')
print(f3) # <_io.TextIOWrapper name='test2.txt' mode='w' encoding='utf8'>
f4 = open('test3.txt', mode='a', encoding='utf8')
print(f4) # <_io.TextIOWrapper name='test3.txt' mode='a' encoding='utf8'>
相对路径和绝对路径
知识点:
`相对路径:在当前py文件所在的目录下查找
举例:在window中不带盘点的路径
注意·:./ 代表相对当前目录(可以省略) …/ 代表上一级目录
绝对路径:根据文件的完整路径查找
举例:在window中带盘符
注意·:在编程中路径之间的分隔符,往往会有特殊含义,建议都改成\或者/
示例:
# 1.当前py文件和资源文件都在一个目录下
# 相对路径
f1 = open('test1.txt')
# 绝对路径
f2 = open('F:/BigData21/基础班资料/03_随堂视频和代码/day10/代码/day10_project/test1.txt')
# 2.当前py文件和资源文件不在一个目录下
# 相对路径
f3 = open('source/test4.txt')
# 绝对路径
f4 = open('F:\\BigData21\\基础班资料\\03_随堂视频和代码\\day10\\代码\\day10_project\\source\\test4.txt')
文件的关闭操作
知识点
`关闭文件对象:文件对象名.close()
示例:
#close():关闭文件对象
#先打开文件生成文件对象font>
#注意:utf -8:万国码 最通用的编码f = open(‘test1.txt’, mode=‘w’, encoding=‘utf8’)
#再关闭文件对象
f.close()
文件读操作
知识点
读模式: r(默认) 或者 rb(读二进制内容)
一个个字符读:
读num个字符: read(num)
读所有的字符: read()
一行行内容读:
读一行内容: readline()
读所有行内容: readlines()
一个个读:
# 打开文件
f = open('test1.txt', mode='r', encoding='utf8')
# 读取文件
# read(num): 一次读取num个字符
data = f.read(8)
print(data)
# read(): 读取剩下的所有字符,如果是第一次读就是读取所有
data = f.read()
print(data)
# 关闭文件
f.close()
一行行读:
# 打开文件
f = open('test1.txt', mode='r', encoding='utf8')
# 读取文件
# readline(): 一次读取一行
data = f.readline()
print(data)
# readlines(): 读取剩下的所有行,如果是第一次读,就是读取所有内容
data_list = f.readlines()
print(data_list)
# 关闭文件
f.close()
文件写操作
知识点:
写模式: w(覆盖写) 或者 wb(覆盖写二进制内容)
a(追加写) 或者 ab(追加写二进制内容)
一个个字符写:write(内容)
一行行内容写:writelines(内容)
示例:
# 打开文件
f = open('test2.txt', mode='w', encoding='utf8')
# 写内容到文件
f.write('\t你好python\n')
f.writelines(
"""
你好io流
文件:file
打开:open
读:read
写:write
追加:append
关闭:close
行:line
"""
)
# 关闭文件
f.close()
综合练习
普通文件备份
# 打开文件
f1 = open('test1.txt',mode='r',encoding='utf8')
f2 = open('test1[备份].txt',mode='w',encoding='utf8')
# 读写文件
data = f1.read()
f2.write(data)
# 关闭文件
f1.close()
f2.close()