- 文件操作的函数
- 文件可迭代
- open(文件名(路径), mode="?", encoding="字符集")
f = open("../Python/是缘.txt",mode = "r",encoding = "utf-8")
l = f.read()
print(l) 结果:
芸芸众生本不识,
茫茫人海彼此执.
爱恨情仇结缘事,
不枉当年一梦痴.
2018muxw- 路径分为绝对路径和相对路径
- 绝对路径:从磁盘根目录一直到文件名或者从互联网寻找一个路径
- 相对路径(比较常用):同一个文件夹下的文件,相对与当前这个程序所在的文件夹而言.如果在同一个文件夹中,则相对路径就是这个文件名,如果在上一层文件夹,则要用../返回上一路径
- 操作模式:
- r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b
- 比较重要的(r,w,a,r+,rb,wb,ab)比较少用的(r+b,w+b,a+b)
- r readline().strip可以一行一行读取
- w 写文件(带w的,只要你操作了,就会清空源文件,如果文件不存在,会自动创建)
- a(追加)写的时候,换行需要手动控制
- r+(读写模式)不论你读取多少内容,光标在哪,写入的时候都是在结尾写入(除非一上来就写入,会在开头)
- b
- rb,wb,ab都是处理非文本文件,这些在操作的时候是不能选择encoding的
- a+追加读写,是在末尾写入
- w+(很少用,因为会清空内容)先清空再写入
- 常用的操作
- 光标(seek)*可以移动光标
- seek()是按照字节,read()是按照字符
- seek可进行的操作seek(偏移量,位置)
- seek(0) 开头
- seek(0,2) 结尾
- tell() 光标的位置, 可以使我们看到光标在什么位置
- truncate( )截断文件, 默认从文件开头截断到光标位置, 如果给参数, 从头截断到参数.
- 光标(seek)*可以移动光标
- 修改文件*
- 使用with方式打开文件,好处就是不需要做关闭文件的操作.
- 1. 引入os模块
- 2. 打开目标文件, r
- 3. 打开文件副本, w
- 4. 从r中读取内容进行修改. 写入到副本中
- 5. 删除源文件
- 6. 重命名副本
import os
with open("波多", mode = "r", encoding = "utf-8") as f1,\
open("波多_副本", mode = "w", encoding = "utf-8") as f2:
for line in f1:
new_line = line.replace("什么多", "波多野结衣当然是波多")
f2.write(new_line)
os.remove("波多") # 删除源文件
os.rename("波多_副本", "波多") # 重命名新文件