码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python文件操作(Windows路径,内置os库)+ 正则表达式(语法与re库)


    文章目录

    • 前言
      • 1 Windows路径
        • (1)绝对路径 (Absolute Path)
        • (2)相对路径 (Relative Path)
    • 一、python文件的读写操作
      • 1 读写
        • (1)打开文件
          • file = open('test1.txt','r',encoding='utf-8') --- 打开文件
        • (2)读取文件内容
          • content = file.read() --- 读取全部内容,返回字符串
          • lines = readlines(): 读取所有行并返回一个包含每行内容的列表(逐行读取)
        • (3)写入内容
          • 写入新文件或覆盖文件 (write) - w
          • 追加内容 (append) - a
        • (4)file.close() : 关闭文件
        • (5)with open('test1.txt','r',encoding='utf-8')as f 语句
      • 2 二进制读写模式
    • 二、os 内置路径操作库
      • os.path.realpath(__file__):获取当前执行的脚本文件的绝对路径。
      • os.path.abspath(path): 把相对路径转成绝对路径。
      • os.getcwd():获取当前工作目录的绝对路径。
      • os.path.dirname(path): 返回path上一级的绝对路径
      • os.path.basename(path):返回路径path中的文件名或者目录名
      • os.listdir(path): 返回指定目录中的文件和子目录列表。
      • os.makedirs(path,exist_ok=True) --- 在给定路径创建目录
      • os.path.join(path1, path2,...): 将多个个路径组合成一个完整的路径。
      • os.path.exists(path): 检查路径是否存在。
      • os.path.isfile(path): 检查是否为文件。
      • os.path.isdir(path): 检查是否为目录。
      • os.remove(path): 删除指定文件。
      • os.rmdir(path): 删除指定空目录,必须是空目录;不是递归的删除,所以者函数屁用没有
    • 三、正则表达式
      • 1 正则表达式语法
      • 2 re 正则表达式处理库
        • (1)匹配对象obj获取信息的方法
          • • group(): 返回匹配的字符串。
          • • start(): 返回匹配的起始位置。
          • • end(): 返回匹配的结束位置。
          • • span(): 返回一个元组,包含匹配的起始和结束位置。
        • (2)返回第一个匹配到的信息
          • re.search(pattern, string): 在字符串中搜索模式,如果成功匹配,则返回第一个匹配对象obj。
        • (3)返回所有匹配结果
          • re.findall(pattern, string) :返回的是包含所有匹配字符串组成的列表
          • re.finditer(pattern, string):返回的是包含所有匹配项信息的迭代器,迭代器里面每一项都是一个匹配对象obj
        • (4)替换文本
          • re.sub(pattern, repl, string): 在字符串中查找匹配的模式,并用替换字符串替换它们。 并返回替换后的文本
        • (5)根据匹配拆分
          • re.split(pattern, string): 根据模式将字符串拆分为列表。返回拆分的列表
        • (6)练习:综合案例:编写一个软件的文本查找功能,要求全文查找所有符合条件的匹配项
    • 总结


    前言

    先介绍本部分的前置知识 ---- Windows路径知识。

    1 Windows路径

    在 Windows 操作系统中,处理文件和目录时,绝对路径和相对路径是两个非常重要的概念。理解和正确使用它们有助于高效地管理文件系统。以下是对 Windows 绝对路径和相对路径的详细说明以及在 Python 中的用法。

    (1)绝对路径 (Absolute Path)

    绝对路径是指从磁盘的根目录开始,完整地指向文件或目录的路径。它不依赖于当前的工作目录,无论在哪个位置,绝对路径始终指向同一个文件或目录。

    Windows 中的绝对路径格式

    在 Windows 中,绝对路径通常以驱动器号开头,后跟路径中的每个目录,使用反斜杠 (\) 分隔。例如:

    C:\Users\JohnDoe\Documents\example.txt
    
    • C: 是驱动器号。
    • \Users\JohnDoe\Documents\example.txt 是从驱动器根目录到目标文件的完整路径。

    在 Python 中,绝对路径可以直接使用。例如:

    file_path = r"C:\Users\JohnDoe\Documents\example.txt"
    with open(file_path, 'r') as file:
        content = file.read()
        print(content)
    

    注意:

    • 使用 r 字符串前缀,表示原始字符串,避免反斜杠作为转义字符(如 \n)。
    • 也可以使用双反斜杠 (\\) 来避免转义问题:
    file_path = "C:\\Users\\JohnDoe\\Documents\\example.txt"
    

    (2)相对路径 (Relative Path)

    相对路径是相对于当前工作目录的路径。它表示文件或目录相对于某个参考点的位置。

    Windows 中的相对路径格式

    在 Windows 中,相对路径通常不包括驱动器号,而是从当前工作目录或参考点开始。例如,如果当前工作目录是 C:\Users\JohnDoe,相对路径 .\Documents\example.txt 实际上表示 C:\Users\JohnDoe\Documents\example.txt。

    • . 表示当前目录。
    • .. 表示上一级目录。
      相对路径的使用主要就是这两个点点的使用,下面用一个具体的文件结构来说明:
    C:\
    │
    ├── Users\
    │   ├── JohnDoe\
    │   │   ├── Documents\
    │   │   │   ├── Project\
    │   │   │   │   ├── report.txt
    │   │   │   │   ├── data\
    │   │   │   │   │   ├── analysis1.csv
    │   │   │   │   │   ├── analysis2.csv
    │   │   │   │   └── results\
    │   │   │   │       ├── summary.docx
    │   │   │   │
    │   │   │   ├── Notes.txt
    │   │   │
    │   │   └── Pictures\
    │   │       ├── vacation.jpg
    │   │
    │   ├── JaneDoe\
    │   │   └── Downloads\
    │   │       └── movie.mp4
    │
    └── Program Files\
        └── App\
            └── app.exe
    
    

    假设我们当前的工作目录是 C:\Users\JohnDoe\Documents\Project\data
    那么:

    • C:\Users\JohnDoe\Documents\Project\data\analysis1.csv的相对路径就可以写为 .\analysis1.csv,当前工作目录下面的文件路径也可以直接文件名就是相对路径analysis1.csv
    • C:\Users\JohnDoe\Documents\Project\report.txt的相对路径就可以写为 ..\report.txt
    • C:\Users\JohnDoe\Documents\Notes.txt的相对路径就可以写为..\..\Notes.txt
    • C:\Users\JohnDoe\Pictures\vacation.jpg的相对路径就可以写为 ..\..\..\Pictures\vacation.jpg

    【注】:python中获取当前工作目录的函数 os 库里面含有。

    一、python文件的读写操作

    先介绍本节会用到的常见参数:
    常用参数有:

    • file: 文件的路径或名称。
    • mode: 打开文件的模式,如只读(‘r’)、写入(‘w’)、追加(‘a’)、读写(‘r+’)等。
    • encoding: 文件的编码方式,如 ‘utf-8’。

    常见模式说明:

    • ‘r’:只读模式,文件必须存在。
    • ‘w’:写入模式,文件不存在则创建,存在则清空。
    • ‘a’:追加模式,文件不存在则创建。
    • ‘b’:二进制模式,与其他模式结合使用,例如 ‘rb’ 表示以二进制读取。

    1 读写

    假设有以下txt文本在test1.txt中:
    在这里插入图片描述

    (1)打开文件

    file = open(‘test1.txt’,‘r’,encoding=‘utf-8’) — 打开文件

    (2)读取文件内容

    content = file.read() — 读取全部内容,返回字符串
    f = open('test1.txt','r',encoding='utf-8')
    data = f.read()
    f.close()
    print(type(data))
    # 可以看到返回的类型是str
    print(data)
    
  • 相关阅读:
    【代码+详解】算法题 : 最大公约数
    vivado时序分析-2时序分析关键概念
    LeetCode.1260. 二维网格迁移____原地暴力 / 降维+循环数组直接定位
    【人体骨骼点】算法综述
    Kernel: network:问题分析一例,包从二层到了三层,却没有到四层
    聚观早报 | vivo Y100官宣;极氪001 FR将上市
    Apache Kafka 可视化工具调研
    如何选择适合企业的数字化看板系统
    HCIE云计算
    代码随想录训练营第59天|503.下一个更大元素II,42.接雨水
  • 原文地址:https://blog.csdn.net/smalltorch/article/details/139700985
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号