• python基础(七)


    文件的相关操作流程

    计算机系统分为:计算机硬件,操作系统,应用程序三部分。

    我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。

    有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件的流程:

    1 #1. 打开文件,得到文件句柄并赋值给一个变量
    2 f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r
    3 
    4 #2. 通过句柄对文件进行操作
    5 data=f.read()
    6 
    7 #3. 关闭文件
    8 f.close()
    1.文件操作的函数

      open(文件名(路径),mode="?",encoding="字符集"")
      
    文件路径:
      1).绝对路径,从磁盘的根目录或者从互联网上寻找一个路径.
      2).相对路径,相对于当前程序所在的文件夹 ../上层文件夹 (这个使用的比较多)
     文件的读写
    1 f = open("哈哈哈哈哈", mode="r", encoding="UTF-8")
    2 s = f.read()
    3 print(s)
    4 f.close()

      不管你读取了多少内容,光标在哪儿,写入的时候都是在结尾写入,除非上来就写入,这是写入是在开头

      最好用的读写同时存在的模式

      r+ 读写模式,先读后写

      w+ 写读模式,先写后读

    1 f = open("阿西吧", mode="r+", encoding="utf-8")
    2 s = f.read(3) # 读取三个字符
    3 print(s)
    4 f.write("不养了. 送人") # 在末尾写
    5 f.close()

      write模式很少用,因为会清空文件中的内容.

    2.文件的相关操作

      光标的操作

         seek(偏移量,位置)

         seek(0)   将光标移动到开头

         seek(0,2) 将光标移动到末尾

       truncate 截断

    3.文件修改  

     1 # 引入模块
     2 import os
     3 # 打开目标文件
     4 f1 = open("abc", mode="r", encoding="utf-8")
     5 with open("abc", mode="r", encoding="utf-8") as f1, 
     6      open("abc_副本", mode="w", encoding="utf-8") as f2: 
     7 for line in f1:
     8      line = line.replace("abc", "ABC")
     9      f2.write(line)
    10 # 删除文件
    11 os.remove("abc")
    12 os.rename("abc_副本","abc")

    4.文件数据的相关处理 

           id,name,phone,car,home,salary
           1,alex,10086,特斯拉,于辛庄,5000000
           2,wusir,10010,五菱宏光,青年,400000
           3,taibai,10000,魔板单车,松兰堡,30000
           4,ritian,12345,小黄车,广东,30000

     1 lst = []
     2 with open("2018-08-06.log", mode="r", encoding="utf-8") as f:
     3     first = f.readline().strip().split(",")
     4     for line in f:
     5         dic = {} # 每一行一个字典
     6         # 1,alex,10086,特斯拉
     7         ls = line.strip().split(",")
     8         for i in range(len(first)):
     9             dic[first[i]] = ls[i]
    10         lst.append(dic)
    11 print(lst)
     
  • 相关阅读:
    大战设计模式【13】—— 组合模式
    大战设计模式【12】—— 迭代器模式
    大战设计模式【11】—— 模板方法模式
    大战设计模式【10】—— 外观模式
    linux命令进阶
    ansible普通用户su切换
    Ansible 进阶技巧
    ansible playbook对错误的处理
    ansible示例,离线安装etcd
    (原)centos7安装和使用greenplum4.3.12(详细版)
  • 原文地址:https://www.cnblogs.com/129TL/p/9432211.html
Copyright © 2020-2023  润新知