文件操作

Posted lbzbky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。

1. 文件操作的函数
  open(文件名(路径), mode="?", encoding="字符集")
2. 模式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b

    # rb, wb, ab, bytes如果处理的是非文本文件, mode里如果有b. encoding就不能给了
    r
    w
    a
    r+
    b
3. 常用的操作
  1. 光标(seek)*
    seek(0) 开头
    seek(0,2) 结尾
  2. tell() 光标的位置
  3. truncate 截断文件
4. 修改文件
  1. 引入os模块
  2. 打开目标文件, r
  3. 打开文件副本, w
  4. 从r中读取内容进行修改. 写入到副本中
  5. 删除源文件
  6. 重命名副本

技术图片
#将文件中的alex全替换为sb
import os
with open("昨天又干嘛去了", mode="r", encoding="utf-8") as f1,open("昨天又干嘛去了_副本", mode="w", encoding="utf-8") as f2:

    for line in f1:
        line = line.replace("alex", "sb")
        f2.write(line)

os.remove("昨天又干嘛去了")
os.rename("昨天又干嘛去了_副本","昨天又干嘛去了")
文件修改示例

5. 常用日志文件操作示例(将日志文件中的内容以字典形式放到一个列表中)

技术图片
lst = []

with open("2019-10-09.log", mode="r", encoding="utf-8") as f:
    first = f.readline().strip().split(",")
    for line in f:
        dic = {} # 每一行一个字典
        # 1,alex,10086,特斯拉
        ls = line.strip().split(",")
        for i in range(len(first)):
            dic[first[i]] = ls[i]

        lst.append(dic)

print(lst)#[{‘id‘:1,‘name‘:‘alex‘,‘salary‘:10086,‘car‘:‘特斯拉‘},{‘id‘:‘2‘,‘name‘:‘eric‘,‘salary‘:11111,‘car‘:‘tesla‘}]
View Code

6.others

  文件路径:
    1. 绝对路径,从磁盘的根目录寻找 或者 从互联网上寻找一个路径
    2. 相对路径(用的多). 相对于当前程序所在的文件夹 ../上一层文件夹

以上是关于文件操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)

代码片段 - Golang 实现集合操作

Apollo Codegen 没有找到生成代码的操作或片段

VSCode自定义代码片段——.vue文件的模板

操作栏标签片段中的片段?