首页 > 编程语言 >Python文件操作

Python文件操作

时间:2024-11-15 15:32:02浏览次数:1  
标签:文件 读取 Python 写入 file 操作 txt os

七、文件操作

7.1 文件打开和关闭

  1. 打开文件open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

    • file:文件路径

    • mode:文件打开模式

      • 文本模式
        • 'r':只读模式(默认),文件必须存在。
        • 'w':写入模式,若文件存在则清空内容,若不存在则创建。
        • 'a':追加模式,若文件存在则写入到文件末尾,若不存在则创建。
        • 'r+':读写模式,文件必须存在。
        • 'w+':写入和读模式,文件存在会清空内容,若不存在则创建。
        • 'a+':追加和读模式,文件存在时从末尾写入,若不存在则创建。
      • 二进制模式:在文本模式后加 'b',用于处理非文本文件(如图像、视频)。
    • buffering:控制文件的缓冲策略

      • 0:无缓冲,仅适用于二进制模式

      • 1:行缓冲,文本模式

      • >1:设定具体的缓冲区大小,以字节为单位

    • encoding:指定字符编码,例如encoding='utf-8'

    • errors:错误处理,在遇到无法解码的字符时的处理方式

  2. 关闭文件file.close()

7.2 上下文管理器操作

  1. 推荐使用 with 语句管理文件,这样会自动关闭文件。

  2.  with open('example.txt', 'r') as file:
         content = file.read()
         print(content)
     # 文件会自动关闭
    

7.3 文件读取

  1. read():不加参数,则读取文件的所有内容,加数字,代表读取的字符数目。

  2. readline():每次读取一行内容

    with open('example.txt', 'r') as file:
        line = file.readline()  # 读取第一行
        while line:
            print(line, end='')  # 打印每行内容
            line = file.readline()  # 继续读取下一行
    
  3. readlines():一次性读取所有行,并将其存储在列表中。

  4. Python 文件对象本身是一个迭代器,可以直接用于 for 循环逐行读取:

    with open('example.txt', 'r') as file:
        for line in file:
            print(line, end='')  # 每次循环读取一行
    

7.4 文件写入

  1. write():将字符串内容写入文件
  2. writelines():将一个字符串列表写入文件
  3. 文件写入的缓冲:Python 会在文件写入时自动进行缓冲,写入的数据先存储在内存缓冲区,等缓冲区满后再写入磁盘。可以通过 flush() 方法将缓冲区数据立即写入文件
  4. print()print("Hello, World!", file=file)

7.5 文件定位和读取控制

  1. 文件指针:文件指针(File Pointer)是指当前文件操作的位置。每次文件读取或写入时,文件指针会移动,指向文件中的下一个操作位置。
  2. tell():返回当前文件指针的位置,以字节为单位。
  3. seek(offset, whence):移动文件指针
    • offset:偏移量,以字节为单位
    • whence:参考位置,0表示文件开头,1表示当前位置,2表示文件末尾

7.6 文件常见操作

  1. 文件是否存在os.path.exists("文件路径"),返回True表示存在。
  2. 文件是否是普通文件:os.path.isfile("example.txt")
  3. 文件是否是目录:os.path.isdir("example.txt")
  4. 获取文件大小:os.path.getsize("example.txt"),以字节为单位
  5. 创建目录:os.mkdir("new_folder")
  6. 删除文件或目录:os.remove("example.txt")
  7. 重命名或移动文件:os.rename("old_name.txt", "new_name.txt")
  8. 列出目录中的文件和子目录:files = os.listdir("some_directory")
    • 返回一个列表,没有区分文件还是目录
  9. 获取文件的元信息info = os.stat("example.txt")
    • st_size:文件的字节大小。
    • st_nlink:硬链接数量。
    • st_uid:文件所有者的用户 ID。
    • st_gid:文件所属组的组 ID。
  10. 复制文件:shutil.copy("source.txt", "destination.txt")
  11. 复制目录:shutil.copytree("source_folder", "destination_folder")
    • 递归复制目录内的文件
  12. 文件路径操作
    • 获取文件名:os.path.basename(file_path)
    • 获取目录路径:os.path.dirname(file_path)
    • 拼接路径:os.path.join("folder", "file.txt"),结果是folder/file.txt

标签:文件,读取,Python,写入,file,操作,txt,os
From: https://www.cnblogs.com/ouyangxx/p/18548065

相关文章

  • amsi.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个amsi.dll文件(挑选合适的版本文件)把它放入......
  • 基于yolov10的柿子成熟度检测系统,支持图像、视频和摄像实时检测【pytorch框架、python
     更多目标检测和图像分类识别项目可看我主页其他文章功能演示:yolov10,柿子成熟度检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的柿子成熟度检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集,训练好的......
  • python的decimal默认精度为28
    python的decimal的精度可以修改的计算pi使用莱布尼茨级数计算圆周率fromdecimalimportDecimal,getcontext#设置全局精度为100位getcontext().prec=100#使用莱布尼茨级数计算圆周率pi=Decimal(0)forkinrange(1000000):pi+=(Decimal(-1)**k)/(......
  • java处理excel文件
    文章目录maven引入依赖编写ExcelUtil工具类使用ExcelUtil工具类maven引入依赖<!--处理excel依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><......
  • Python异常处理
    六、异常处理基本语法try:#尝试运行的代码块result=10/0exceptZeroDivisionErrorase:#捕获ZeroDivisionError异常print("不能除以零!",e)exceptTypeErrorase:print("类型错误!",e)exceptExceptionase:#这里可以捕获所有的......
  • python实现的扫雷游戏的AI解法(启发式算法)
    相关:python编写的扫雷游戏如何使用计算机程序求解扫雷游戏本文中实现的《扫雷》游戏的AI解法的项目地址:https://openi.pcl.ac.cn/devilmaycry812839668/AI_mine_game该项目的解法效果:之前介绍了网上的一些解决《扫雷》游戏的一些解法,包括DQN和启发式等AI算法,看着这......
  • python调用百度通用翻译API
    文章目录1.简介2.使用步骤3.api调用实现4.编码实现1.简介前段时间在做视频语音识别生成多语种字幕时,使用了百度翻译通用翻译api进行翻译。百度翻译平台经过个人认证之后,每月有200万字符的免费翻译额度。还是比较舒服的。百度翻译开放平台是百度翻译面向广大......
  • Python类
    五、类5.1定义类使用class关键字定义一个类,类名通常采用首字母大写的驼峰命名法classPerson:pass5.2构造函数基本语法classPerson:def__init__(self,name,age):#定义构造函数self.name=name#初始化name属性s......
  • Python开发环境搭建(PyCharm+Anaconda+Git+Gitee)
    一、Anaconda介绍1.1为什么选择Anaconda?Anaconda是一个开源的Python发行版本,主要用于数据科学和机器学习,它包含了Python、conda以及众多工具和库,让我们可以轻松的构建和管理python虚拟环境,方便的进行python项目开发。下面是选择Anaconda的理由:安装简单方便便捷的Python虚拟......
  • Visual Studio 快速分析 .NET Dump 文件
    前言在开发和维护.NET应用程序的过程中,有时会遇到难以捉摸的性能瓶颈或内存泄漏等问题。这些问题往往发生在生产环境中,难以复现。为了更准确地诊断这些运行时问题,通常会收集应用程序在生产环境中的内存转储文件(.dump文件)。在这种情况下,分析内存转储文件(.dump文件)成为解决问题......