zoukankan      html  css  js  c++  java
  • Python基础知识(day7)

    day7

    今日内容

    • 深浅拷贝

    • 文件操作

    1. 深浅拷贝

      # 对于str/int/bool,深浅拷贝结果一样
      import copy
      a = 'llk'
      b = copy.copy(a) # 浅拷贝,拷贝第一层
      c = copy.copy(a) # 深拷贝,拷贝所有数据(可变)
      print("拷贝前" + a)
      print('浅拷贝' + b)
      print("深拷贝" + c)
      print(id(a),id(b),id(c))
      
      # 对于list/tuple/dict
      v1 = [1, 2, 3]
      v2 = copy.copy(v1) # 复制了v1的空壳,指向内存
      v3 = copy.deepcopy(v1) # 找到可变类型进行拷贝,但是只有外壳可变,所以也是拷贝外壳
      
      # 含嵌套的时候才有意义
      v1 = [1,2,[3,4]]
      v2 = copy.copy(v1) # 拷贝最外层,指向内存
      v3 = copy.deepcopy(v1) # 拷贝可变类型,拷贝最外层壳和里面的壳
      print(v1,v2,v3)
      print(id(v1),id(v2),id(v3))
      
      • 总结

        • 浅拷贝: 只拷贝第一层

        • 深拷贝: 拷贝嵌套层次中的所有的可变类型

        • 特殊情况

    2. 文件操作

      1. 文件操作格式

        # 利用open()方法打开文件,利用close()方法关闭
        # open(文件路径,mode=文件打开模式,encoding=编码格式)
        file_name = open ("log.txt", mode = 'r', encoding = 'utf-8')
        
        
      2. 文件打开模式

        """
        可读模式:rt(默认)打开文本类型,rb表示文件内容为二进制,文件不存在时报错
        可写模式:wt(默认)写入文本类型,wb写入二进制,打开文件存在时会清空重新写入,不存在时会新建
        追加模式: at(默认)在文件末尾追加文本类型,ab表示写入二进制,打开文件不存在时会新建
        可读写模式:r+/w+/a+
        """
        
      3. 文件方法

        • 读取文件的所有内容到内存

          file_object = open('log.txt',mode = 'r+',encoding = 'utf-8')
          data = file_object.read()
          
        • 从当前光标所在位置向后读取文件的两个字符

          date = file_object.read(2)
          
        • 读取文件的所有内容到内存,并按照每一行进行分割到列表中

          date_list = file_object.readlines()
          print(data_list)
          
        • 写入文件

          file_object.write("i am llk!")
          
        • 移动光标

          seek(self,offset:int,whence:int = 0)
          # offset代表文件指针偏移量,单位是字节
          # whence为0表示从文件开头,为1表示从当前位置,为2表示从末尾
          
        • tell()

          查找光标所在的位置

        • truncate(self,size:int = None)

          如果它有参数,则光标会跳到指定字节数后,然后把后面的文件全部清空

        • close()关闭文件,操作完必须关闭

  • 相关阅读:
    redis整合springboot
    安装k8s
    线程池工具类几种实现
    数据库mysql注意点及sql优化
    五年规划
    在 Ubuntu 16.04 安装ROS Kinetic 教程
    谈谈form-data请求格式 js
    C# Body为form-data file文件上传至第三方接口 http请求
    .net c# 使用form-data方式发起http请求
    使用form-data和raw作为body发起POST请求的区别
  • 原文地址:https://www.cnblogs.com/lilangkui/p/12506879.html
Copyright © 2011-2022 走看看