【Python】数据处理:OS目录文件操作

Python的os模块是一个用于与操作系统进行交互的标准库模块。它提供了丰富的功能来处理文件和目录、执行系统命令、获取和设置环境变量等。

工作目录操作

获取当前工作目录

os.getcwd()
  • 参数:无
  • 返回值:一个字符串,表示当前工作目录的路径。这个路径是Python解释器开始执行脚本时所在的目录,或者是最后通过 os.chdir(path) 函数改变的目录。

改变当前工作目录

os.chdir(path)
  • 参数:path(必需):一个字符串,指定要更改到的目标目录的路径。

  • 返回值:无

目录操作

创建一个目录

os.mkdir(path,mode,dir_fd)
  • 参数
    • path (str): 要创建的目录路径。
    • mode (int, optional): 指定目录的权限,默认值是 0o777。在某些系统上可能会被 umask 覆盖。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录
  • 返回值:无

递归创建目录。如果中间的目录不存在,也会一并创建。

os.makedirs(name,mode,exist_ok)
  • 参数
    • name (str): 要创建的目录路径。
    • mode (int, optional): 指定目录的权限,默认值是 0o777。在某些系统上可能会被 umask 覆盖。
    • exist_ok (bool, optional): 如果为 True,当目标目录已经存在时不会引发异常。如果为 False,当目标目录已经存在时会引发 FileExistsError
  • 返回值:无

删除一个目录。该目录必须是空的,否则会引发 OSError 异常。

os.rmdir(path,dir_fd)
  • 参数
    • path (str): 要删除的目录路径。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录。
  • 返回值:无

递归删除目录。从指定路径开始,依次删除各级目录。如果目录为空,则删除之,直至某个目录非空或所有目录都被删除。

os.removedirs(name)
  • 参数:name (str): 要删除的目录路径。
  • 返回值:无

文件操作

虽然os模块没有直接创建文件的方法,但可以通过open函数创建文件。

open('file.txt', 'w').close()  # 创建一个空文件

删除指定路径的文件。如果路径指向的是一个目录,将引发 IsADirectoryError 异常。

os.remove(path,dir_fd)
  • 参数:
    • path (str): 要删除的文件路径。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录。
  • 返回值:无

重命名文件或目录

os.rename(src,dst,src_dir_fd,dst_dir_fd)
  • 参数:
    • src (str): 原文件或目录路径。
    • dst (str): 新文件或目录路径。
    • src_dir_fd (optional): 如果提供,src 是相对于 src_dir_fd 指定的目录。
    • dst_dir_fd (optional): 如果提供,dst 是相对于 dst_dir_fd 指定的目录。
  • 返回值:无

文件属性

检查指定的路径是否是一个文件

os.path.isfile(path)
  • 参数:path (str) - 要检查的路径。
  • 返回值:如果路径是一个存在的文件,返回 True;否则返回 False

检查指定的路径是否是一个目录

os.path.isdir(path)
  • 参数:path (str) - 要检查的路径。
  • 返回值:如果路径是一个存在的目录,返回 True;否则返回 False

返回指定路径的文件大小(以字节为单位)

os.path.getsize(path)
  • 参数:path (str) - 要获取大小的文件路径。

  • 返回值:返回文件的大小(以字节为单位)。

获取文件最后修改时间

os.path.getmtime(path)
  • 参数:path (str) - 要获取修改时间的文件路径。

  • 返回值:返回文件最后修改时间的时间戳(自纪元以来的秒数表示,通常是 Unix 时间戳)。

从路径中获取文件名(不包含目录部分)

os.path.basename(path)
  • 参数:path (str) - 要提取文件名的路径。

  • 返回值:返回路径中的文件名部分。

从路径中获取目录名(不包含文件名部分)

os.path.dirname(path)
  • 参数:path (str) - 要提取目录名的路径。

  • 返回值:返回路径中的目录名部分。

路径操作

检查文件或目录是否存在

os.path.exists(path)
  • 参数:path (str) - 要检查的文件或目录路径。

  • 返回值:如果路径存在,返回 True;否则返回 False

将一系列的路径片段解析为绝对路径

path.resolve([...paths])
  • 参数:...paths (string[]):一个或多个路径片段的序列
  • 返回值:一个字符串,该字符串是绝对路径。

方法返回从两路径的相对路径

path.relative(from, to)
  • 参数
    • from (str):起始路径。
    • to (str):目标路径。
  • 返回值:一个字符串,该字符串表示从fromto的相对路径。

连接一个或多个路径组件,返回一个合并后的路径。

os.path.join(path,*paths)
  • 参数
    • path (str) - 基础路径。
    • *paths (str) - 需要连接到基础路径的其他路径组件。
  • 返回值:返回合并后的路径

将路径分割为目录和文件名两部分

os.path.split(path)
  • 参数:path (str) - 要分割的路径。

  • 返回值:返回一个元组,包含目录和文件名两部分。

将路径分割为文件名和扩展名两部分

os.path.splitext(path)
  • 参数:path (str) - 要分割的路径。

  • 返回值:返回一个元组,包含文件名和扩展名两部分。

目录遍历

os.listdir 返回指定目录中的所有文件和目录的名称列表。它不会递归遍历子目录。

os.listdir(path,dir_fd)
  • 参数
    • path (str, optional): 要列出内容的目录路径。如果未指定,默认使用当前工作目录。
    • dir_fd (optional): 如果提供,此路径相对于 dir_fd 指定的目录
  • 返回值:一个包含目录中所有文件和目录名的列表。

os.walk 生成目录树下的所有文件名,递归遍历目录中的所有子目录。它提供了遍历目录树的简单方法

os.walk(top,topdown)
  • 参数
    • top (str): 要遍历的目录树的顶级目录路径
    • topdown (bool, optional): 如果为 True(默认值),则首先遍历顶级目录,否则首先遍历子目录。
  • 返回值:一个生成器,生成一个三元组 (root, dirs, files)
    • root (str): 当前正在遍历的目录的路径。
    • dirs (list): root 目录中子目录的名称列表。
    • files (list): root 目录中非目录的名称列表

示例

请添加图片描述
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么,一不小心打造了一个基于大模型的操作系统

如果以大模型为Kernel, 形成一个新的操作系统,那么: 1. byzer-llm 是这个大模型操作系统的编程接口,有点类似Linux操作系统的C ABI。 2. byzer-retrieval 也被集成进 byzer- llm 接口里,算是大模型操作系统的文件系统&#xff0c…

pytorch 自定义学习率更新 Poly

Poly 学习率调整策略需要继承_LRScheduler类,该类包含三个重要属性和两个重要方法 学习率与batch-size的关系 一般来说,batch-size的大小一般与学习率的大小成正比。batch-size越大一般意味着算法收敛方向的置信度越大,也可以选择较大的学…

STM32快速入门(ADC数模转换)

STM32快速入门(ADC数模转换) 前言 ADC数模转换存在的意义就是将一些温度传感器、各自数据传感器产生的模拟信号转换成方便识别和计算的数字信号。 导航 图24 通用定时器框图: 图片截取自STM32 F1XX中文参考手册。还是以框图为中心&#x…

FinalShell导出服务器配置信息密码password是加密的,如何解密?

本章教程,主要实现了一个小的功能,对FinalShell导出的配置信息,进行解密。 FinalShell导出之后,会产生一个json文件,例如下面这种json格式,里面记录了服务器的IP地址,端口和密码,里面的密码是经过加密处理的,本文主要利用java代码实现对这个password进行解密还原。 {&…

(论文翻译)Coordinate Attention for Efficient Mobile Network Design(坐标注意力 CVPR2021)

Coordinate Attention for Efficient Mobile Network Design(CVPR2021) 文章目录 Coordinate Attention for Efficient Mobile Network Design(CVPR2021)摘要1.引言2.相关工作3.方法:Coordinate Attention3.1.Revisit …

【c++】哈希>unordered容器哈希表哈希桶哈希的应用详解

主页:醋溜马桶圈-CSDN博客 专栏:c_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1. unordered系列关联式容器 1.1 unordered_map 1.1.1 unordered_map的文档介绍 1.1.2 unordered_map的接口说明 1.1.2.1 unordered_m…

Java学习 - Maven - 常用命令(学习精选)

前言 在上一篇文章中,我们对 Maven 有了初步的了解,包括它的定义、安装步骤以及一些基本的配置方法。Maven 是一个强大的项目管理工具,它可以帮助开发者自动化构建过程,并且管理项目的依赖关系。 今天,我们将深入探讨…

上位机图像处理和嵌入式模块部署(f407 mcu和其他mcu品类的选择)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多朋友读书的时候学的是stm32,工作中用的也是stm32。这本来问题不大,但是过去两三年的经历告诉我们,mcu的使用…

【设计模式】行为型设计模式之 职责链模式,探究过滤器、拦截器、Mybatis插件的底层原理

一、介绍 职责链模式在开发场景中经常被用到,例如框架的过滤器、拦截器、还有 Netty 的编解码器等都是典型的职责链模式的应用。 标准定义 GOF 定义:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求,将这些接收对象…

k8s小型实验模拟

(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。(5分) (2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPat…

Java | Leetcode Java题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; public class Solution {public boolean wordBreak(String s, List<String> wordDict) {Set<String> wordDictSet new HashSet(wordDict);boolean[] dp new boolean[s.length() 1];dp[0] true;for (int i 1; i < s.len…

JimuReport 积木报表 v1.7.52 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

智能变电站网络报文记录及故障录波分析装置

是基于Intel X86、PowerPC、FPGA等技术的高度集成化的硬件平台&#xff0c;采用了高性能CPU无风扇散热、网络数据采集、高速数据压缩存储加密等多种技术&#xff0c;实现了高性能计算、多端口同步高速数据采集、数据实时分析、大容量数据存储等功能。 ● 在满足工业标准的同时&…

数据结构 -- 树状数组

前言 树状数组或二叉索引树&#xff08;Binary Indexed Tree&#xff09;&#xff0c;又以其发明者命名为 Fenwick 树。其初衷是解决数据压缩里的累积频率的计算问题&#xff0c;现多用于高效计算数列的前缀和、区间和。它可以以 O(logn) 的时间得到任意前缀和。并同时支持在 …

Kali Linux 2024.2 释出

渗透测试发行版 Kali Linux 释出了最新的 2024.2。 主要新特性包括&#xff1a;桌面环境更新到 GNOME 46&#xff0c;Xfce 环境加入 HiDPI 模式&#xff0c;更新了网络侦察工具 AutoRecon&#xff0c;监视 Linux 进程的命令行工具 pspy&#xff0c;提取和显示 CVE 信息的 Splo…

项目验收总体计划书(实际项目验收原件参考Word)

测试目标&#xff1a;确保项目的需求分析说明书中的所有功能需求都已实现&#xff0c;且能正常运行&#xff1b;确保项目的业务流程符合用户和产品设计要求&#xff1b;确保项目的界面美观、风格一致、易学习、易操作、易理解。 软件全套文档过去进主页。 一、 前言 &#xff0…

Unity 编辑器扩展,获取目录下所有的预制件

先看演示效果 实现方案 1创建几个用于测试的cube 2&#xff0c;创建一个Editor脚本 3&#xff0c;编写脚本内容 附上源码 using UnityEditor; using UnityEngine;public class GetPrefeb : EditorWindow {private string folderPath "Assets/Resources"; // 指定预…

[FSCTF 2023]Tea_apk

得到密文和密钥 import base64 from ctypes import c_uint32import libnumDELTA 0x9E3779B9def decrypt(v, n, k):rounds 6 int(52 / n)sum c_uint32(rounds * DELTA)y v[0].valuewhile rounds > 0:e (sum.value >> 2) & 3p n - 1while p > 0:z v[p …

Django 连接mysql数据库配置

1&#xff0c;提前创建注册的app1应用 Test/Test/settings.py python manage.py startapp app1 2&#xff0c;配置mysql数据库连接 Test/Test/settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,# 数据库名字NAME: db1,# 连接mysql数据库用户名USER: ro…