随笔- 63  文章- 0  评论- 0  阅读- 5268 

文件内光标的移动

1.

read在文本模式下,括号内的数字表示的是读取指定的字符个数

with open(r'1.txt','r',encoding= 'utf8') as f:
    print(f.read(5))
    print(f.read(3))

 

 

read在二进制模式下,括号内的数字表示的是读取指定的字符

unicode所有的字符都是用2bytes来表示起步

utf8中文用3bytes来表示,英文用1bytes来表示

2.控制光标的移动

seek()函数是Python中操作文件游标移动操作的函数

用法如下

seek(offset,whence=0)

offset:开始的偏移量,也就是代表需要移动偏移的字节数

whence:给offset参数一个定义,表示要从哪个位置开始偏移;

0代表从文件开头开始算起,支持文本模式和二进制模式

1代表从当前位置开始算起,只支持二进制模式

2代表从文件末尾算起,只支持二进制模式

with open(r'1.txt','r',encoding='utf8') as f:
    print(f.read())
    f.seek(3,0)
    print(f.read())

 

 

 

 

文件修改

硬盘上的数据有两个状态:占有态和自由态

我们删除数据其实就是将数据原来的位置标记为自由态,当有新的数据加进来落在自由态上,就会覆盖掉原来的数据

 

文件修改方式一:

实现思路:将文件内容一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件

优点:在文件过程中同一份数据只有一份

缺点:过多占用内存

with open('1.txt', mode='r', encoding='utf-8') as f:
    data = f.read()
with open('1.txt', mode='w', encoding='utf-8') as f:
    f.write(data.replace('我是穷屌','我想要赚钱搬到市中心'))

 

 

文件修改方式二:

实现思路:以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完再写入临时文件...,

删掉原文件,将临时文件重命名原文件名

优点:不会过多占用内存

缺点:在文件修改过程中同一份数据存了两份

 

import os
with open('1.txt','r',encoding='utf8') as read_f,
    open('.1.txt.swap','w',encoding='utf8') as
write_f:
    for line in read_f:
        write_f.write(line.replace('哈哈哈','嘻嘻嘻'))
os.remove('1.txt') #删除文件
os.remove('.1.txt.swap','1.txt')#重命名文件

 

函数简介

函数是python为了代码最大程度地重用和最小代码冗余而提供的基本数据结构。 函数是一种设计工具,可能将复杂的程序,分解成可以管理的块。

为什么要使用函数?

1.减少代码量

2.保持一致性

3.易维护

函数其实就相当于工具,提前定义好可以反复使用

len是python解释器提前给我们写好的函数(工具)

我们只需要拿来使用即可,这种类型的函数称之为内置函数,我们自己写的函数称为自定义函数。

 

函数的语法结构

函数定义语法结构

def 函数名(参数)

  #内部代码

  return 返回值

1.def

  定义函数的关键字

2.函数名

  函数名类似于变量名,指代函数体代码,命名与变量名一致

3.括号

  定义函数的时候,函数名后面肯定要先挂括号

4.参数

  使用函数的时候,给函数内部传递的数据,可以不写或单个、多个

5.冒号

  定义函数要也需要缩进的代码块

6.函数的注释

  用于解释函数的主要功能、使用方法等说明性文字

7.函数体代码

  函数的核心功能,也是我们编写的核心

8.return

  后面跟什么,那么函数执行完后就返回什么

 

 

定义函数需要用del关键字

  定义函数的过程不会执行函数代码 只会检测语法

    def index():

      gsafdgj  定义的时候不会报错

    def index():

      if 语法错误定义的时候就会报错

调用函数需要使用函数名

 

 posted on   鳗鱼的春天  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示