python函数简介与文件

python小白考前复习

函数简介

函数就是一个用于专门实现某个功能的代码块(可重用),而模块就是大量具有相似功能的函数集合成的文件。可以这么理解,函数就是螺丝刀,你每次拧螺丝的时候把它取出来,模块就是一个工具包,这个包里放得都是跟螺丝有关的工具,它们有相似的功能。

  • 函数,一个用于专门实现某个功能的代码块(可重用)。

    • 内置函数

    • 自定义函数

  • 模块,集成了很多功能的函数集合。

    • 内置模块,Python内部帮助我们提供好的。

      python 复制代码
      import decimal
      
      v1 = decimal.Decimal("0.1")
      v2 = decimal.Decimal("0.2")
      v3 = v1 + v2
      print(v3) # 0.3
    • 第三方模块,网上下载别人写好的模块(功能集合)。

    • 自定义模块

文件

文件操作

在学习文件操作之前,先来回顾一下编码的相关以及先关数据类型的知识。

  • 字符串类型(str),在程序中用于表示文字信息,本质上是unicode编码中的二进制。

    python 复制代码
    name = "武沛齐"
  • 字节类型(bytes)

    • 可表示文字信息,本质上是utf-8/gbk等编码的二进制(对unicode进行压缩,方便文件存储和网络传输。)

      python 复制代码
      name = "武沛齐"
      data = name.encode('utf-8')
      print(data) # b'\xe6\xad\xa6\xe6\xb2\x9b\xe9\xbd\x90'
      
      result = data.decode('utf-8')
      print(result) # "武沛齐"
    • 可表示原始二进制(图片、文件等信息)

基本知识

文件类型

  • 文本文件
  • 二进制文件

模式

  • r:读文件(默认是读文本文件)
  • w:写文件,打开一次会清空文件原有内容再写
  • a:追加写,不会在下一次打开时清空
  • t:文本文件,一般可省略
  • b:二进制文件
  • +:
  • x:
    mode的第一个字母表示对其的操作,第二个字母是文件类型
    我们来看以下两段代码的区别
    第一段代码用"rb"模式,是直接读取的文件原始字节序列,它不会进行解码操作,rb 模式通常用于读取非文本文件,如图片、音频、视频或二进制数据文件
    第二段代码是读取的文本内容,encoding是为了指明原文件用的是哪种编码模式,从而以同样模式进行解码
python 复制代码
file_object=open("天下之主.txt",mode="rb")
data=file_object.read()
print(data.decode("utf-8"))
python 复制代码
file_object=open("天下之主.txt",mode="rt",encoding="utf-8")
data=file_object.read()
file_object.close()
print(data)

在Python中,写入文件和实现文件定位是通过内置的文件操作方法完成的。以下是一些基本步骤和示例:

写入文件:

  1. 打开文件

    使用 open() 函数以写入模式打开文件。你可以使用 'w'(写入模式,会覆盖文件内容)或 'a'(追加模式,会在文件末尾添加内容)。

    python 复制代码
    with open('filename.txt', 'w', encoding='utf-8') as file:
        # 执行文件写入操作
  2. 写入内容

    使用文件对象的 .write() 方法写入字符串。

    python 复制代码
    file.write("这是一些文本数据。\n")
  3. 写入多行

    可以一次性写入多行文本,或使用循环写入多行。

    python 复制代码
    lines = ["第一行文本", "第二行文本", "第三行文本"]
    with open('filename.txt', 'w', encoding='utf-8') as file:
        for line in lines:
            file.write(line + "\n")

实现文件定位:

  1. 获取当前位置

    使用文件对象的 .tell() 方法获取当前文件光标的位置。

    python 复制代码
    with open('filename.txt', 'r+', encoding='utf-8') as file:
        current_position = file.tell()
        print(f"当前位置:{current_position}")
  2. 移动到指定位置

    使用文件对象的 .seek(offset, whence) 方法移动文件光标到指定位置。

    • offset 是要移动的字节数。
    • whence 是一个可选参数,指定从哪里开始移动(0 表示文件开头,1 表示当前位置,2 表示文件末尾)。
    python 复制代码
    with open('filename.txt', 'r+', encoding='utf-8') as file:
        file.seek(5)  # 从文件开头移动5个字节
  3. 读取和写入到特定位置

    你可以结合 .seek() 和读写方法来操作文件的特定部分。

    python 复制代码
    with open('filename.txt', 'r+', encoding='utf-8') as file:
        file.seek(0)  # 移动到文件开头
        content = file.read(10)  # 读取10个字节的内容
        print(content)
        
        file.seek(2)  # 移动到文件开头的第2个字节
        file.write("新的数据")  # 写入新数据

注意事项:

  • 使用 'r+' 模式打开文件时,可以实现读写操作,但需要确保文件已经存在。
  • 文件定位操作通常与 'r+''w+''a+' 模式结合使用,因为这些模式允许读写访问。
  • 使用 .seek() 方法时,如果移动超出了文件的范围,光标会停留在文件末尾。

通过这些基本操作,你可以在Python中灵活地进行文件写入和定位,实现各种文件处理任务。

相关推荐
余生H2 分钟前
前端Python应用指南(三)Django vs Flask:哪种框架适合构建你的下一个Web应用?
前端·python·django
凡人的AI工具箱8 分钟前
每天40分玩转Django:实操图片分享社区
数据库·人工智能·后端·python·django
小军军军军军军12 分钟前
MLU运行Stable Diffusion WebUI Forge【flux】
人工智能·python·语言模型·stable diffusion
数据小小爬虫20 分钟前
Python爬虫获取AliExpress商品详情
开发语言·爬虫·python
小爬虫程序猿21 分钟前
利用Python爬虫速卖通按关键字搜索AliExpress商品
开发语言·爬虫·python
一朵好运莲28 分钟前
React引入Echart水球图
开发语言·javascript·ecmascript
Eiceblue40 分钟前
使用Python获取PDF文本和图片的精确位置
开发语言·python·pdf
我叫czc42 分钟前
【Python高级353】python实现多线程版本的TCP服务器
服务器·python·tcp/ip
爱数学的程序猿1 小时前
Python入门:6.深入解析Python中的序列
android·服务器·python
xianwu5431 小时前
反向代理模块。开发
linux·开发语言·网络·c++·git