python基础学习

内容概要


  • 文件内光标的移动
  • 文件数据修改
  • 函数简介
  • 函数语法结构

内容详情


文件内光标的移动

  1. with open(r'路径','r',encoding='utf8') as f:
  2. print(f.read(n))
  3. read在文本模式下 括号内的数字表示的是读取指定的字符个数
  4. with open(r'路径', 'rb') as f:
  5. print(f.read(n).decode('utf8'))
  6. read在二进制模式下 括号内的数字表示的是读取指定的字节数
  7. '''unicode所有的字符都是用2bytes来起步表示 utf8中文用3bytes来表示 英文用1bytes来表示'''
  8. # 控制光标的移动
  9. with open(r'a.txt','r',encoding='utf8') as f: with open(r'路径', 'rb') as f:
  10. f.seek(3, 1) 基于当前位置 继续往后移动三个字节
  11. f.seek(-3, 2) 基于文件末尾 往前移动三个字节
  12. print(f.tell()) 获取光标基于文件开头的字节数
  13. f.seek(offset,whence)
  14. """
  15. seek方法可以控制光标的移动 在文本模式下移动的单位也是字节数
  16. seek(offset,whence)
  17. offset:控制移动的字节数
  18. whence:控制模式
  19. 0:相对于文件开头(让光标先移动到文件开头)
  20. 支持文本模式和二进制模式
  21. 1:相对于当前位置(让光标先停留在当前位置)
  22. 只支持二进制模式
  23. 2:相对于文件结尾(让光标先移动到文件末尾)
  24. 只支持二进制模式
  25. """

文件的修改

  1. '''
  2. 硬盘上的数据有两个状态
  3. 占有态与自由态
  4. 我们删除数据其实就是将数据原来的位置标记成自由态之后如果有新的数据进来了并且落到了自由态位置那么直接覆盖
  5. '''
  6. f.seek(n) 不写模式 默认是0模式 基于文件开头 并且兼容文本和二进制
  7. '''文件数据在硬盘上其实是刻死 不可能从中间再添加新的内容 只能将老内容移除 刻新的'''
  8. # 文件的修改实现思路
  9. 1.将文件内容发一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件
  10. 优点: 在文件修改过程中同一份数据只有一份
  11. 缺点: 会过多地占用内存
  12. 2.以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件,删掉原文件,将临时文件重命名原文件名
  13. 优点: 不会占用过多的内存
  14. 缺点: 在文件修改过程中同一份数据存了两份
  15. import os # 模块
  16. with open('b.txt', 'r', encoding='utf-8') as read_f, open('.b.txt.swap', 'w', encoding='utf-8') as wrife_f:
  17. for line in read_f:
  18. wrife_f.write(line.replace('jason', 'jerry'))
  19. os.remove('b.txt') # 删除文件
  20. os.rename('.b.txt.swap', 'b.txt') # 重命名文件

函数简介

  1. """如何查看内部源码 ctrl+左键点击"""
  2. 函数与循环的区别
  3. 我们需要在不同的地方 反复执行相同的代码>>>:函数
  4. 我们需要在相同的地方 反复执行相同的代码>>>:循环
  5. eg:def my_len():
  6. n = 0
  7. for i in s:
  8. n += 1
  9. print('字符串中字符的个数', n)
  10. # print(my_len())
  11. """
  12. 上述代码与真正的len差距
  13. 1.真正的len可以统计指定数据的元素个数
  14. 而我们的len目前只能统计指定的数据
  15. 2.真正的len执行完成后有结果
  16. 而我们的len执行完成后结果是None
  17. """
  18. # 函数其实就相当于是工具 提前定义好之后可以反复使用
  19. lenpython解释器提前给我们写好的函数(工具)
  20. 我们只需要拿来使用即可 这种类型的函数称之为内置函数
  21. 我们自己写的函数称之为自定义函数

函数的语法结构

  1. def 函数名(参数1,参数2):
  2. '''函数的注释'''
  3. 函数体代码
  4. return 返回值
  5. 1.def
  6. 是定义函数的关键字
  7. 2.函数名
  8. 函数名类似于是变量名 指代函数体代码 命名与变量名一致
  9. 3.括号
  10. 定义函数的时候 函数名后面肯定要先写括号
  11. 4.参数
  12. 类似于使用函数的时候 给函数内部传递的数据 可以不写 或者单个、多个
  13. 5.冒号
  14. 定义函数也需要有缩进的代码块
  15. 6.函数的注释
  16. 用于解释函数的主要功能、使用方法等说明性文字
  17. 7.函数体代码
  18. 函数的核心功能 也是我们将来编写的核心
  19. 8.return
  20. 后面跟什么 那么执行完函数之后就会返回什么
  21. """
  22. 定义函数需要使用def关键字
  23. 定义函数的过程不会执行函数体代码 只会检测语法
  24. def index():
  25. xsadasd 定义的时候不会报错
  26. def index1():
  27. if 语法错误定义的时候就会报错
  28. 调用函数需要使用函数名加括号
  29. """

python基础学习10的更多相关文章

  1. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  5. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  6. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  7. python基础学习7

    python基础学习7 内容概要 字符串的内置方法 字符串的内置方法(补充) 列表的内置方法 可变类型与不可变类型 队列与堆栈 内容详情 字符串的内置方法 # 1.strip 移除字符串首尾的指定字符 ...

  8. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  9. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

随机推荐

  1. 搭建 LNMP 环境

    搭建 LNMP 环境 搭建 Nginx 静态服务器 安装 Nginx 使用 yum 安装 Nginx: yum install nginx -y 修改 /etc/nginx/conf.d/defaul ...

  2. eclipse 下 SpringBoot 工程使用Maven打包

    eclipse 下 SpringBoot 工程使用Maven打包 1. pom.xml 添加打包配置 点击查看代码 <!-- 打包使用 --> <build> <plug ...

  3. Linux Red Hat 8.0虚拟机安装过程

    Linux Red Hat 8.0虚拟机安装过程 一.安装虚拟机所需要的工具: 1.VMware Workstation Pro 2.Red Hat 8.0 虚拟机镜像 3.还有一个就是VMware的 ...

  4. thymeleaf模板使用

    使用模板页面,实现在同一个页面展现不同数据,controller实现页面跳转的时候就不在需要打开新页面

  5. 【直播回顾】OpenHarmony知识赋能第四期第二课——GPIO驱动开发

    3月17日晚上19点,​知识赋能第四期直播的第二节课<OpenHarmony标准系统HDF框架之GPIO驱动开发>​,在OpenHarmony开发者成长计划社群内成功举办. 本期课程,由​ ...

  6. 技术分享 | Web自动化之Selenium安装

    Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出现人为的错误,也比较费时间.因此,将这些任务自动化,就可以消除人为因素.S ...

  7. os.system 裁掉片头 ffmpeg

    顺序执行多个指令os.system执行终端命令os.system('start ffmpeg -i x222.mp4 "%s.mp3" && del x222.mp ...

  8. [AcWing 771] 字符串中最长的连续出现的字符

    点击查看代码 #include<iostream> using namespace std; string str; int n; int main() { cin >> n; ...

  9. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第六版,支持OpenGL,3D上帝视角俯视K线概貌。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  10. 史上最全Redis面试题(2020最新版)

    一个执着于技术的公众号 导读:2020 年最新版 Redis面试题,两万字干货,为方便读者阅读,已整理为PDF文档,后台回复『redis』即可领取.希望对大家有帮助! 概述 1. 什么是Redis? ...