码迷,mamicode.com
首页 > 其他好文 > 详细

文件操作

时间:2019-10-10 00:01:23      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:pre   log   形式   readline   a+b   sla   文件名   程序   删除   

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. 相对路径(用的多). 相对于当前程序所在的文件夹 ../上一层文件夹

文件操作

标签:pre   log   形式   readline   a+b   sla   文件名   程序   删除   

原文地址:https://www.cnblogs.com/lbzbky/p/11645039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!