zoukankan      html  css  js  c++  java
  • 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)
     
  • 相关阅读:
    L317 电子烟
    L316 波音737Max 危机
    2.19.3月 专业综合错题
    L314 单音节词读音规则(二)-元音字母发音规则
    L313 珊瑚裸鼠灭绝
    L312 难看懂的
    Pycharm写代码中文输入法不跟随
    Windows下Python多版本共存
    Python之批处理字符串(打开文件)
    Python Url请求代码
  • 原文地址:https://www.cnblogs.com/129TL/p/9432211.html
Copyright © 2011-2022 走看看