当前位置: 首页 > news >正文

探索文件系统,Python os库是你的瑞士军刀

文章目录

    • 探索文件系统,Python os库是你的瑞士军刀
      • 第一部分:背景介绍
      • 第二部分:os库是什么?
      • 第三部分:如何安装os库?
      • 第四部分:简单库函数使用方法
        • 1. 获取当前工作目录
        • 2. 改变当前工作目录
        • 3. 列出目录内容
        • 4. 创建目录
        • 5. 删除文件
      • 第五部分:场景应用
        • 场景1:遍历指定目录下的所有文件
        • 场景2:获取环境变量
        • 场景3:执行系统命令
        • 场景4:检查文件是否存在
        • 场景5:重命名文件
      • 第六部分:常见bug及解决方案
        • Bug1:权限错误
        • Bug2:文件不存在
        • Bug3:路径错误
      • 第七部分:总结

在这里插入图片描述

探索文件系统,Python os库是你的瑞士军刀

第一部分:背景介绍

在Python编程中,与操作系统的交互是不可避免的。无论是获取文件信息、修改文件路径,还是执行系统命令,都需要操作系统的支持。Python的os库就是这样一个强大的工具,它提供了丰富的方法来处理文件和目录,执行系统级操作,以及获取系统信息。这个库的功能强大到几乎涵盖了所有与操作系统交互的需求,使得Python开发者能够轻松地处理文件系统和操作系统相关任务。

第二部分:os库是什么?

os库是Python的标准库之一,它提供了许多与操作系统交互的功能。通过这个库,我们可以执行文件和目录操作、系统命令、环境变量管理等任务。它是Python与操作系统之间沟通的桥梁。

第三部分:如何安装os库?

由于os库是Python的标准库,因此不需要额外安装。只需在Python脚本中导入即可使用:

import os

第四部分:简单库函数使用方法

1. 获取当前工作目录
current_dir = os.getcwd()
print(current_dir)

os.getcwd()函数用于获取当前工作目录的路径。

2. 改变当前工作目录
os.chdir('/path/to/directory')

os.chdir(path)函数用于改变当前工作目录到指定的path

3. 列出目录内容
entries = os.listdir('/path/to/directory')
print(entries)

os.listdir(path)函数用于列出指定目录下的所有文件和目录名。

4. 创建目录
os.mkdir('/path/to/new/directory')

os.mkdir(path)函数用于创建一个新目录。

5. 删除文件
os.remove('/path/to/file')

os.remove(path)函数用于删除指定的文件。

第五部分:场景应用

场景1:遍历指定目录下的所有文件
for root, dirs, files in os.walk('/path/to/directory'):for file in files:print(os.path.join(root, file))

os.walk()函数用于遍历目录树,返回每个目录的路径、子目录列表和文件列表。

场景2:获取环境变量
path_var = os.environ.get('PATH')
print(path_var)

os.environ是一个代表当前环境变量的字典对象。

场景3:执行系统命令
result = os.system('ls -l')
print(result)

os.system(command)函数用于执行指定的系统命令。

场景4:检查文件是否存在
if os.path.exists('/path/to/file'):print("File exists")
else:print("File does not exist")

os.path.exists(path)函数用于检查指定路径的文件或目录是否存在。

场景5:重命名文件
os.rename('/path/to/old/file', '/path/to/new/file')

os.rename(src, dst)函数用于重命名文件或目录。

第六部分:常见bug及解决方案

Bug1:权限错误

错误信息PermissionError: [WinError 5] 拒绝访问。
解决方案:确保程序有足够的权限去执行操作,或者以管理员身份运行程序。

try:os.remove('/path/to/file')
except PermissionError:print("Permission denied. Please run as administrator.")
Bug2:文件不存在

错误信息FileNotFoundError: [Errno 2] No such file or directory
解决方案:在操作文件之前检查文件是否存在。

if os.path.exists('/path/to/file'):os.remove('/path/to/file')
else:print("File does not exist.")
Bug3:路径错误

错误信息FileNotFoundError: [Errno 2] No such file or directory
解决方案:确保提供的路径是正确的,可以使用os.path.join来构建路径。

import os
file_path = os.path.join('/path/to/directory', 'file.txt')
if os.path.exists(file_path):os.remove(file_path)
else:print("File does not exist.")

第七部分:总结

os库是Python中一个非常强大的标准库,它提供了与操作系统交互的丰富功能。通过这个库,我们可以轻松地处理文件和目录操作、执行系统命令、管理环境变量等。虽然在使用过程中可能会遇到权限错误、文件不存在等问题,但通过适当的错误处理和路径管理,我们可以有效地解决这些问题。掌握os库,将使你的Python编程更加高效和强大。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

在这里插入图片描述

相关文章:

探索文件系统,Python os库是你的瑞士军刀

文章目录 探索文件系统,Python os库是你的瑞士军刀第一部分:背景介绍第二部分:os库是什么?第三部分:如何安装os库?第四部分:简单库函数使用方法1. 获取当前工作目录2. 改变当前工作目录3. 列出目…...

【小白学机器学习41】如何从正态分布的总体中去抽样? 获得指定正态分布的样本的2种方法

目录 1 目标:使用2种方法,去从正态分布的总体中去抽样,获得样本 1.1 step1: 首先,逻辑上需要先有符合正态分布的总体population 1.2 从总体中取得样本,模拟抽样的过程 2 从正态分布抽样的方法1 3 从正态分布抽样…...

将VSCode设置成中文语言环境

目录 VSCode默认是英文语言环境,这对于像我这种英语比较菜的人来说不是那么友好 另外也习惯了用中文,所以接下来介绍下如何将VSCode设置成中文语言环境。 1、打开VSCode软件,按快捷键【CtrlShiftP】 2、在弹出的搜索框中输入【configure l…...

Applied Intelligence投稿

一、关于手稿格式: 1、该期刊是一个二区的,模板使用Springer nature格式, 期刊投稿要求,详细期刊投稿指南,大部分按Soringernature模板即可,图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…...

AI-agent矩阵营销:让品牌传播无处不在

矩阵营销是一种通过多平台联动构建品牌影响力的策略,而 AI-agent 技术让这一策略变得更加智能化。AI社媒引流王凭借其矩阵管理功能,帮助品牌在多个平台上实现深度覆盖与精准传播。 1. 矩阵营销的优势 品牌触达更广:多平台联动可以覆盖不同用…...

【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)

1. Startup Process 进程 postmaster 初始化过程中, 在进入 ServerLoop() 函数之前,会先通过调用 StartChildProcess() 函数来开启辅助进程,这些进程的目的主要用来完成数据库的 XLOG 相关处理。 如: 核实 pg_wal 和 pg_wal/archive_status 文件是否存在Postgres先前是否发…...

NSSCTF-做题笔记

[羊城杯 2020]easyre 查壳,无壳,64位,ida打开 encode_one encode_tow encode_three 那么我们开始一步一步解密,从最外层开始 def decode_three(encrypted_str):decrypted_str ""for char in encrypted_str:char_code …...

【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()

目录 1 虽然这是个很基础的知识,但是我觉得有必要记录下 2 整洁数据表 3 交叉数据表的2种形式 3.0 交叉表的名字 3.1 2维的交叉表 3.2 用2维表现3维的 3.3 上述内容,具体的markdown文本 4 交叉数据表 4.1 交叉数据表并不整洁 4.2 但是交叉表也…...

springboot旅游管理系统的设计与实现

springboot旅游管理系统的设计与实现 如需源码pc端👉👉👉资源 手机端👉👉👉资源 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于…...

k8s 1.28 聚合层部署信息记录

–requestheader-client-ca-file –requestheader-allowed-namesfront-proxy-client –requestheader-extra-headers-prefixX-Remote-Extra- –requestheader-group-headersX-Remote-Group –requestheader-username-headersX-Remote-User –proxy-client-cert-file –proxy-cl…...

自由学习记录(25)

只要有修改,子表就不用元表的参数了,用自己的参数(只不过和元表里的那个同名) 子表用__index“继承”了父表的值,此时子表仍然是空表 一定是创建这样一个同名的变量在原本空空的子表里, 传参要传具体的变…...

关于函数式接口和编程的解析和案例实战

文章目录 匿名内部类“匿名”在哪里 函数式编程lambda表达式的条件Supplier使用示例 ConsumeracceptandThen使用场景 FunctionalBiFunctionalTriFunctional 匿名内部类 匿名内部类的学习和使用是实现lambda表达式和函数式编程的基础。是想一下,我们在使用接口中的方…...

Linux 僵尸进程和孤儿进程, 进程优先级

僵尸进程 之间在进程状态中了解到了 "僵尸状态". 那么处于僵尸状态的进程就是僵尸进程. 僵尸状态是一种特殊的进程状态, 它表示一个进程已经完成执行, 但其父进程尚未回收其终止状态. "僵尸状态" 的本质就是死亡状态. 如何理解僵尸进程: 举个例子: 一个正…...

爬虫笔记24——纷玩岛自动抢票脚本笔记

纷玩岛自动抢票,协议抢票思路实现 一、获取Authorization凭证二、几个关键的参数三、几个关键的接口获取参数v,这个参数其实可以写死,可忽略通过价位获取演出的参数信息获取观演人信息,账号提前录入即可提交订单接口 先看实现图&a…...

《白帽子讲Web安全》15-16章

《白帽子讲Web安全》15-16章 《白帽子讲Web安全》15章15、Web Server配置安全15.1、Apache安全15.2、Nginx安全15.3、jBoss远程命令执行15.4、Tomcat远程命令执行15.5、HTTP Parameter Pollution15.6、小结 第四篇 互联网公司运营安全《白帽子讲Web安全》16章16、互联网业务安全…...

计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

大语言模型压缩技术;推理优化技术;SparseGPT算法;GPTQ算法

目录 大语言模型落地的成本、效率与效果 模型压缩技术 推理优化技术 SparseGPT算法 GPTQ算法 大语言模型落地的成本、效率与效果 模型压缩技术 模型压缩技术是大语言模型轻量化的关键。介绍了多种模型压缩方法,其中权重量化和模型稀疏化是两种主要的技术。 权重量化:权重…...

Facebook的开源项目解析:推动开发者社区的技术进步

Facebook,作为全球领先的社交平台之一,其在技术领域的创新不仅体现在产品功能的实现上,也积极推动开源社区的发展。开源项目已经成为Facebook技术战略的重要组成部分,通过开源,Facebook不仅加速了技术进步,…...

力扣--LCR 149.彩灯装饰记录I

题目 代码 /** Definition for a binary tree node. public class TreeNode { int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left left;this.right ri…...

Rust SQLx CLI 同步迁移数据库

上文我们介绍了SQLx及SQLite,并介绍了如何使用代码同步迁移数据库。本文介绍Sqlx cli 命令行工具,介绍如何安装、使用,利用其提供的命令实现数据表同步迁移。Java生态中有flyway, sqlx cli 功能类似,利用命令行工具可以和其他语言…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...