python Day8

  • 文件操作的识

    • 利用python代码写一个脚本操作文件的过程

      • 文件的路径:path

      • 打开方式:读,写,追加,读写,写读

      • 编码方式:utf-8,gbk,gb2312

      • 简单文件读取(文件存储时与文件打开时编码本运用必须一致)

        f1=open("111.txt",encoding="utf-8",mode="r")
        content=f1.read()
        print(content)
        f1.close()
        #encoding不写的话默认操作系统方向的编码,通常window是gbk,mac和linux都是utf-8
        #这里txt文件写入的编码格式是utf-8所以编码的格式需要写utf-8,如果是其他编码类型将会报错
        • 文件操作的三部曲:

          • 打开文件
          • 对文件句柄进行相应的操作
          • 关闭文件
    • 文件的操作读

      • 读里面的"r"模式的使用

        #文件读取的全读模式
        f1=open("111.txt",encoding="utf-8",mode="r")
        content=f1.read()
        print(content)
        ##结果:详细内容请查看 www.tiebai.comcom
        #文件读取的按字符模式
        f1=open("111.txt",encoding="utf-8",mode="r")
        content=f1.read(4)#里面的数字则是从第几个数字开始
        print(content)
        ##结果:详细内容
        #文件读取的按行读取
        f1=open("111.txt",encoding="utf-8",mode="r")
        content=f1.readline()#里面的数字则是从第几个数字开始
        print(content)
        ##结果:详细内容
        #文件读取的将所有行全部读取,并以列表的形式返回
        f1=open("111.txt",encoding="utf-8",mode="r")
        content=f1.readlines()#里面的数字则是从第几个数字开始
        print(content)
        ##结果:['详细内容请查看\n', 'www.tiebai.com']
      • 读里面的"rb"模式的使用(常用于视频,图片等非文本数据

        image1=open("1595835526701.png",mode="rb")
        image1=image1.read()
        print(image1)
        ###结果 b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x039\x00\x00\x02\x90\x08\x06\x00\x00\x00\xbcv\xb4\x8b\x00\x00 \x00IDATx\x9c\xec\xbd\xe9r$I\x96\xa5\xf7\xe9f\x8b/\x00\x02\x11\x99Y5\xd5\xd5\xc3i\x99~\x14>\x0b\x1f\x85/\xc8\x9fM
    • 文件的操作写的

      • 写里面的"w"模式的使用

        #写文件,如果文件不存在就会创建文件,进行写入,如果文件春在就会清空文件在进行写入。
        image1=open("爱萝莉",mode="w")
        print(image1.write("fdsf"))
        f.close()
      • 写里面的"wb"模式的使用

        #文件操作的字节模式进行写入
        image1=open("1595835526701.png",mode="rb")
        content=image1.read()
        imag2=open("照片.png",mode="wb")
        imag2.write(content)
        f.close()
    • 文件操作的追加

      • 文件追加里面的"a"的使用

        #有文件,在原文件的最后面追加内容,没有文件创建文件追加内容
        f1=open("文件追加",mode="a")
        f1.write("DSdadasdd")
        f1.close()
    • 文件的其他操作模式

      • 文件读写模式中的"r+"的使用

        #先读后写,写入的位置与光标的位置有关
        f=open("其他模式",encoding="utf-8",mode="r+")
        content=f.read()
        print(content)
        f.write("fjsfdsg")
        f.close()
    • 打开文件的另一种方式

      • 优点1:不用关闭文件的句柄

        with open("其他模式",encoding="utf-8",mode="r") as f:
        print(f.read())
      • 优点2:可以同时打开多个文件进行处理

        #flush强制刷新
        with open("dsf.txt",encoding="utf-8") as f,open("爱萝莉",encoding="utf-8") as f1:
        print(f.read(),f1.read())
    • 文件的修改步骤

      • 以读的模式打开原文件
      • 以写的模式创建一个新文件
      • 将原文件的内容读出来修改成新内容,写入新文件
      • 将原文件删除
      • 将新文件重命名成原文件
      import os
      #将文件中zhuxiayu部分修改成fengchaoSB
      ##以读的形式打开原文件,以写的形式创建新文件
      with open("自述.txt",encoding="utf-8") as f1,\
      open("自述1.txt",encoding="utf-8",mode="w") as f2:
      #将原文件的内容读取出来并进行修改,写入新文件
      old_content=f1.read()
      new_content=old_content.replace("zhuxiayu","fengchaoSB")
      f2.write(new_content)
      os.remove("自述.txt")
      #对新文件进行重新命名
      os.rename("自述1.txt","自述.txt")
      • 以循环的形式进行修改升级版本
      import os
      #将文件中zhuxiayu部分修改成fengchaoSB
      ##以读的形式打开原文件,以写的形式创建新文件
      with open("自述.txt",encoding="utf-8") as f1,\
      open("自述1.txt",encoding="utf-8",mode="w") as f2:
      #以循环的模式以此写入
      for line in f1:
      new_content=line.replace("fengchaoSB","zhuxiayu")
      f2.write(new_content)
      os.remove("自述.txt")
      #对新文件进行重新命名
      os.rename("自述1.txt","自述.txt")
      #使用这样方法关于写入清空的问题
      #清空是关闭文件句柄,在次以w的形式打开此文件时候才会进行清空,所以上门一直通过循环进行写入是不会清空上一行的文件信息
  • 作业

    • 用户输入一个数字,判断一个数字是否为一个水仙花数,水仙花数是一个三位数,三位数的每一位三次方的和还等于这个数,那么这个数就是一个水仙花数

      #eg:1^3+5^3+3^3=153
      number=input("please input number:")
      if number.isdecimal():
      if len(number)==3:
      x1=int(number[0])
      x2=int(number[1])
      x3=int(number[2])
      if x1**3+x2**3+x3**3==int(number):
      print("其为水仙花数")
      else:
      print("不是水仙花数")
      else:
      print("数字不正确")
      else:
      print("请输入三位数合法数字")
    • 将list=["周大苏打","周对手的防守","马虎他","周星星"]中首字母是周字的删除

      list=["周大苏打","周对手的防守","马虎他","周星星"]
      #这里有坑,因为在列表的删除过程中,删除一个元素其他会前移,会出现问题,所以采用倒叙删除
      for i in range(len(list)-1,-1,-1):
      if list[i][0]=="周":
      list.pop(i)
      print(list)
    • 车牌分块区分,现给出车牌,根据车牌的信息,分析的各省车牌持有量

      cars=["鲁A2444","鲁B1233","京B8989M","黑C49678","黑C46555","沪B25041"]
      locals={"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"}
      #车牌分块区分,现给出车牌,根据车牌的信息,分析的各省车牌持有量
      countlist={}
      for i in cars:
      if locals[i[0]] not in countlist:
      countlist[locals[i[0]]]=1
      else:
      countlist[locals[i[0]]]=countlist[locals[i[0]]]+1
      print(countlist)
      #升级版
      countlist={}
      for i in car:
      countlist[locals[i[0]]]=countlist.get(locals[i[0]],0)+1
      print(countlist)
    • 通过文件形式将txt格式的商品价格,商品数量,商品名字以列表嵌套字符串的形式表现

      dic={}
      list1=[]
      with open ("a.txt",encoding="utf-8",mode="r") as f1:
      for line in f1:
      line=line.strip("\n").split(" ")
      dic["name"]=line[0]
      dic["price"] = line[1]
      dic["count"] = line[2]
      list1.append(dic)
      print(list1)

​

python基础 Day8的更多相关文章

  1. Python基础Day8

    一.内容回顾 列表的存储:列表里的元素存储的是值的内存地址,就算通过copy,复制后容器里的值也是指向同一个内存地址(跟驻留机制有关) l1 = [1,2,3, l2 = l1.copy() 浅cop ...

  2. python笔记 - day8

    python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...

  3. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  4. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  5. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  6. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  7. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  8. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  9. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

随机推荐

  1. python新手70个练手项目

    不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了70个Python实战项目列表,都有完整且详细的教程,你可以从中选择自 ...

  2. 《Python Web开发实战》|百度网盘免费下载|Python Web开发

    <Python Web开发实战>|百度网盘免费下载|Python Web开发 提取码:rnz4 内容简介 这本书涵盖了Web开发的方方面面,可以分为如下部分: 1. 使用最新的Flask ...

  3. PHP pos() 函数

    实例 输出数组中的当前元素的值: <?php$people = array("Peter", "Joe", "Glenn", &quo ...

  4. PHP timezone_abbreviations_list() 函数

    ------------恢复内容开始------------ 实例 输出 "act" 时区的夏令时.偏移量和时区名称: <?php$tzlist=timezone_abbre ...

  5. RectTransform的localPosition与anchoredPosition(3D)的区别

    RectTransform继承自Transform,用于描述矩形的坐标(Position),尺寸(Size),锚点(anchor)和中心点(pivot)等信息,每个2D布局下的元素都会自动生成该组件. ...

  6. C/C++编程笔记:C语言入门知识点(三),请收藏C语言最全笔记!

    今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可 ...

  7. webapp项目新建java class、webapp目录树结构

      上一篇中我们介绍了IDEA.maven新建webapp项目的两种方式,分别是:在命令行中用模板创建.直接在IDEA中选择骨架创建. 但都存在一个问题:目录树不完整.有些人会不知道接下来该如何创建j ...

  8. Java线程知识:二、锁的简单使用

    锁的初步认识 说到锁,相信大家都不陌生,这是我们生活中非常常见的一种东西,它的形状也各式各样.在生活中,我们通常用锁来锁住房子的大门.装宠物的笼子.装衣服的衣柜.以及装着我们一些小秘密的小抽屉.... ...

  9. intel:spectre&Meltdown侧信道攻击(四)—— cache mapping

    前面简单介绍了row hammer攻击的原理和方法,为了更好理解这种底层硬件类攻击,今天介绍一下cpu的cache mapping: 众所周知,cpu从内存读数据,最开始用的是虚拟地址,需要通过分页机 ...

  10. POJ 2443 Set Operation 题解

    本文同时发布于 博客园 洛谷博客 题目链接 题目分析 给你n个集合,每个集合里面都有可能会重复的数字 q个询问,每次询问两个数是否会在同一集合内 $n<=1000$ $q<=200000$ ...