Python之文件操作
打开文件
open('路径’, '打开方式', '编码方式')
路径:可以用绝对路径,也可以用相对路径
打开方式:r(读) w(写) a(追加) r+(可读可写) w+(可写可读) a+(可追加可读) ..b(以byte类型打开,可接前面的6种方式)
编码方式:以什么编码方式保存的文件就要以什么编码方式打开进行操作,utf-8 gbk......
注意:虽然有r+ w+ ,但是打开文件直接写和 读完再写会导致光标不一致,会乱,不建议使用。
f = open('H:\网课资料\Python\标记1.txt', mode='r', encoding='utf-8'
f = open('log', mode='w', encoding='utf-8') # 对于w,没有此文件就会新创建文件;有文件就先将源文件删除,然后再写入新文件
# 可以同时打开多个文件,并且不用再调用close()进行关闭
# with open('log', mode='r+', encoding='utf-8') as f:
# print(f.read())
# with open('log', mode='r+', encoding='utf-8') as f1, \
# open('test', mode='r+', encoding='utf-8') as f2:
# print(f1.read())
# print(f2.read())
操作文件:
读:read 一次性读
readlines 一次性读,文件大的时候不好处理
readline 一行一行读——不知道在哪结束,视频、图片 rb bytes 按照字节读
for 循环读 一行一行的读进来进行操作,最好的操作方式
with open('log', mode='r', encoding='utf-8') as f: for line in f: print(line)
写:write 可用 \n 进行 换行操作
光标:(文件指针)
seek——指定光标移动到某个位置
tell——获取光标当前位置
truncate——截取文件
# ###########功能详解###########33
# f = open('log', mode='r+', encoding='utf-8')
# content = f.read(3) # 读出来的都是字符,英文汉字都是3个
# f.seek(3) # seek是按照字节定光标的位置,因为一个汉字要用3个字节,所以只有定义要3的倍数才能完整的读出后面的汉字
# print(f.tell()) # tell返回光标的位置
# count = f.tell()
# f.seek(count+9)
# content = f.read()
# content = f.readable() # 判断文件是否可读
# print(content)
# line = f.readline() # 一行一行的读
# line = f.readlines() # 一次性读出来,每一行当成列表中的一个元素,添加到一个列表中
# print(line)
# f.truncate(5) # 对源文件进行截取
# f.close()
修改文件
with open('test', encoding='utf-8') as f, open('test.bck', 'w', encoding='utf-8') as f1: for line in f: if 'cfq' in line: line = line.replace('cfq', 'CFQ') f1.write(line) import os os.remove('test') # 删除文件 os.rename('test.bck', 'test') # 重命名文件

浙公网安备 33010602011771号