python文件操作
1.文件操作的函数:
open("文件名(路径),mode="?",encoding="字符集") ?表示的是文件操作的模式(如只读,只写,追加等) 字符集就是编码或者解码方式。
1 f = open("old",mode="r",encoding="utf-8") 2 s = f.read() 3 print(s) 4 f.close() #每次对文件进行操作之后要关闭这个文件,否则在后面对这个文件进行删除操作的时候会出错。 5 #123456 6 #654321
2.文件的模式:
r(只读),w(只写),a(追加),r+(读加写),w+(写加读),rb(读取bytes),wb(写入bytes),ab(追加bytes),r+b(读加写入byte),w+b(写加读bytes),a+b(追加写读bytes)
>1读 其实上面的文件函数就是读文件
f = open("呵呵呵", mode="r", encoding="utf-8") for line in f: # 文件是一个可迭代对象 print(line.strip()) # 一行一行的处理数据 f.close()
>2写 如果源文件不存在就会创建新文件,如果有源文件那么就会先清空源文件再写入。
写入的时候需要自己手动添加换行符\n
>3所有带b的操作都是对非文本的操作,在上面的函数格式中就不能添加encoding了。
3.文件的常用操作:
seek(偏移量,位置)
seek(0)是开头
seek(0,2)在末尾的偏移量是0
tell()找到光标所在的位置
truncate()如果不填参数就是从文件开头截断到光标所在的位置,如果添加参数了就是从头截断到参数位置
4.修改文件
因为直接修改文件是不允许的,所以要按一下步骤去修改问价。
>1引入os模块
>打开目标问价,mode=r
>打开副本文件,mode=w
>从r中读取内容进行修改,写入到副本文件中
>删除源文件
>重命名副本
import os with open("old",mode="r",encoding="utf-8") as f1,\ open("new",mode="w",encoding="utf-8") as f2: for line in f1: line = line.strip().replace("alex","老板") f2.write(line) os.remove("old") os.rename("new","old")