Python内置库os和sys的常用方法汇总

news2024/11/20 4:33:22

40c45977420c4d7cbde48c1d4eec8c31.jpeg

更多Python学习内容:ipengtao.com

Python是一门强大的编程语言,具有丰富的标准库,其中包括ossys两个常用模块。os模块用于与操作系统交互,提供了许多文件和目录操作的方法,而sys模块用于与Python解释器进行交互,提供了对命令行参数和系统配置的访问。本文将汇总ossys模块的常用方法,并提供详细的示例代码。

os模块的常用方法

1. 获取当前工作目录

使用os.getcwd()方法可以获取当前Python脚本的工作目录。这对于构建相对路径非常有用。

import os

current_directory = os.getcwd()
print("当前工作目录:", current_directory)

2. 切换工作目录

使用os.chdir(path)方法可以更改当前工作目录到指定的路径。

import os

os.chdir("/path/to/new/directory")

3. 列出目录内容

使用os.listdir(path)方法可以列出指定目录中的文件和子目录。

import os

directory_contents = os.listdir("/path/to/directory")
print("目录内容:", directory_contents)

4. 创建目录

使用os.mkdir(path)方法可以创建一个新目录。

import os

os.mkdir("/path/to/new/directory")

5. 递归创建目录

使用os.makedirs(path)方法可以递归创建多级目录,如果父级目录不存在也会创建。

import os

os.makedirs("/path/to/new/directory")

6. 删除文件或目录

使用os.remove(file)方法可以删除文件,使用os.rmdir(directory)方法可以删除目录,但前提是目录必须为空。如果要删除目录及其内容,可以使用shutil.rmtree(path)方法。

import os
import shutil

os.remove("/path/to/file")
os.rmdir("/path/to/empty/directory")
shutil.rmtree("/path/to/directory/with/contents")

7. 文件重命名

使用os.rename(src, dst)方法可以重命名文件或目录。

import os

os.rename("/path/to/old/file", "/path/to/new/file")

8. 检查文件或目录是否存在

使用os.path.exists(path)方法可以检查文件或目录是否存在。

import os

if os.path.exists("/path/to/file_or_directory"):
    print("文件或目录存在")
else:
    print("文件或目录不存在")

9. 获取文件信息

使用os.path.getsize(file)方法可以获取文件的大小(以字节为单位)。

import os

file_size = os.path.getsize("/path/to/file")
print("文件大小(字节):", file_size)

10. 检查是否为文件或目录

使用os.path.isfile(path)方法可以检查路径是否为文件,使用os.path.isdir(path)方法可以检查路径是否为目录。

import os

if os.path.isfile("/path/to/file"):
    print("是文件")
elif os.path.isdir("/path/to/directory"):
    print("是目录")

11. 拼接路径

使用os.path.join(path1, path2, ...)方法可以拼接路径,以适应不同操作系统的路径分隔符。

import os

path = os.path.join("/path/to", "directory", "file.txt")
print("拼接后的路径:", path)

sys模块的常用方法

1. 获取命令行参数

使用sys.argv列表可以获取命令行参数,其中sys.argv[0]是脚本名称,后续元素是传递给脚本的参数。

import sys

script_name = sys.argv[0]
arguments = sys.argv[1:]

print("脚本名称:", script_name)
print("参数:", arguments)

2. 退出脚本

使用sys.exit(code)方法可以退出脚本,并可选地指定退出代码。退出代码为0表示正常退出,其他值表示出现错误。

import sys

# 正常退出
sys.exit(0)

# 带有错误退出代码
sys.exit(1)

3. 获取Python解释器信息

使用sys.version可以获取Python解释器的版本信息。

import sys

python_version = sys.version
print("Python版本:", python_version)

4. 修改默认编码

使用sys.setdefaultencoding(encoding)方法可以修改Python的默认字符编码。

import sys

# 修改默认编码为UTF-8
reload(sys)
sys.setdefaultencoding('utf-8')

5. 获取最大递归深度

使用sys.getrecursionlimit()方法可以获取Python解释器的最大递归深度。

import sys

recursion_limit = sys.getrecursionlimit()
print("最大递归深度:", recursion_limit)

6. 设置最大递归深度

使用sys.setrecursionlimit(limit)方法可以设置Python解释器的最大递归深度。请注意,更改递归深度可能导致Python解释器不稳定,因此要谨慎使用。

import sys

# 设置最大递归深度为10000
sys.setrecursionlimit(10000)

7. 获取字节序

使用sys.byteorder可以获取系统的字节序,返回值为"little"(小端字节序)或"big"(大端字节序)。

import sys

byte_order = sys.byteorder
print("字节序:", byte_order)

8. 获取操作系统信息

使用sys.platform可以获取操作系统的名称。例如,Windows系统返回"win32",Linux系统返回"linux"。

import sys

platform = sys.platform
print("操作系统:", platform)

总结

ossys模块提供了丰富的方法,用于与操作系统和Python解释器进行交互。本文汇总了这两个模块的常用方法,包括获取当前工作目录、文件操作、路径操作、命令行参数处理等等。这些方法在编写文件操作、系统管理和命令行工具时非常有用。通过充分利用ossys模块,可以更轻松地处理各种系统和环境相关的任务,提高Python编程的效率和便捷性。

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

更多Python学习内容:ipengtao.com

干货笔记整理

  100个爬虫常见问题.pdf ,太全了!

Python 自动化运维 100个常见问题.pdf

Python Web 开发常见的100个问题.pdf

124个Python案例,完整源代码!

PYTHON 3.10中文版官方文档

耗时三个月整理的《Python之路2.0.pdf》开放下载

最经典的编程教材《Think Python》开源中文版.PDF下载

4189796af8d07043c08da5ed1125bf43.png

点击“阅读原文”,获取更多学习内容

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

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

相关文章

How to understand the Trusted Intelligent Computing Service in Huawei Cloud

How to understand the Trusted Intelligent Computing Service in Huawei Cloud 概述什么是TICS产品架构TICS规格说明产品优势产品功能应用场景政企信用联合风控政府数据融合共治金融联合营销使能数据交易 快速入门TICS快速入门TICS使用流程简介入门实践 概述 什么是TICS 可信…

07. HTTP接口请求重试怎么处理?

目录 1、前言 2、实现方式 2.1、循环重试 2.2、递归重试 2.3、Spring Retry 2.4、Resilience4j 2.5、http请求网络工具内置重试方式 2.6、自定义重试工具 2.7、并发框架异步重试 2.8、消息队列 3、小结 1、前言 HTTP接口请求重试是指在请求失败时,再次发…

c++ 填充字符 memset fill

https://blog.csdn.net/sandalphon4869/article/details/105404397 https://blog.csdn.net/liuchuo/article/details/52296646 https://blog.csdn.net/bulebin/article/details/105324515 https://blog.csdn.net/liuchuo/article/details/52296646 通常会填充字符串某些位置的值…

opencv期末练习题(5)附带解析

根据R、G、B的值实时修改图像的颜色 import cv2 import numpy as np""" 滑动块调整图像灰度1. 读取图片,并转为灰度图 2. 定义启动滑块和R、G、B滑块 3. 只有启动滑块的值为1时,拖动R、G、B滑块才生效 4. 根据R、G、B的值实时对修改图片的…

JDK17 - 开发者视角,从 JDK8 ~ JDK17 都增加了哪些新特性

目录 前言 一、站在开发视角,从 JDK8 升级到 JDK17 都有哪些新特性 1.1、JDK8 新特性 1.1.1、Optional 类 a)简介 b)使用方法 c)使用场景 1.2、JDK9 新特性 1.2.1、Optional - ifPresentOrElse 解决 if-else 1.2.2、Opt…

每天刷两道题——第三天

1.1两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换) 输入:[1,2,3,4] 输出:[2,1,4,3…

【ESP-NOW Web 服务器传感器仪表板 (ESP-NOW + Wi-Fi)】

【ESP-NOW Web 服务器传感器仪表板 (ESP-NOW Wi-Fi)】 1. 前言2. 同时使用 ESP-NOW 和 Wi-Fi3. 项目概况4. 先决条件4.1 环境配置4.2 DHT 库4.3 ESPAsyncWebSrv服务器库4.4 Arduino_JSON4.5 所需零件4.6 获取接收板 MAC 地址4.7 ESP32 发送电路 5. ESP3…

常见安全概念澄清,Java小白入门(八)

认证 认证 (Identification) 是验证当前用户的身份。 常见的认证技术: 身份证用户名和密码用户手机:手机短信、手机二维码扫描、手势密码用户的电子邮箱用户的生物学特征:指纹、语音、眼睛虹膜 授权 授权 (Authorization) 指赋予用户系统…

js常用事件演示

目录 JS事件的具体方法 窗口事件 表单事件 键盘事件 鼠标事件 知识小拓展 JS事件的具体方法 我们用到JavaScript的时候js的事件就显得特别重要了 事件名说明onsubmit当表单提交时触发该事件onclick鼠标单击事件ondblclick鼠标双击事件onblur元素失去焦点onfocus元素获得…

了解深度学习优化器:Momentum、AdaGrad、RMSProp 和 Adam

slavahead 一、介绍 DEEP学习在人工智能领域迈出了一大步。目前,神经网络在非表格数据(图像、视频、音频等)上的表现优于其他类型的算法。深度学习模型通常具有很强的复杂性,并提出数百万甚至数十亿个可训练的参数。这就是为什么在…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 编译构建及此过程中的踩坑填坑(1)

接前一篇文章:玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 代码下载(2) 本文主要参考: BQ3588C_代码下载 上一回完成了代码下载,本回开始进行编译构建。 1. 编译构建 (1)执行prebuilts 在源…

SpringBoot 集成支付宝支付

网页操作步骤 1.进入支付宝开发平台—沙箱环境 使用开发者账号登录开放平台控制平台 2.点击沙箱进入沙箱环境 说明:沙箱环境支持的产品,可以在沙箱控制台 沙箱应用 > 产品列表 中查看。 3.进入沙箱,配置接口加签方式 在沙箱进行调试前…

扫地机器人地图与用户终端的同步

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/APaJheSbgTW3jNssWsp5Ng 地图数据来源于机器人算法模块,一般通过SLAM算法完成建图的过程。 建图过程中,基础数据涉及到各…

Android 串口协议

前言 本协议是 Android 应用端与主控板之间的通信协议,是串行通信协议。 协议要求同一时间只能有两个通讯端点在相互通讯,采用小端传输数据。 硬件层基于RS485协议,采取半双工,一主多从的通讯模式。Android定义为主机&#xff0c…

一、初识Redis与分布式系统

目录 一、Redis应用 二、实现方式 三、Redis应用 四、分布式系统 五、分布式系统实现 1、应用服务和数据库服务分离 2、引入负载均衡,应用服务器集群(解决高并发) 3、引入读写分离,数据库主从结构(解决高并发&a…

如何在iPhone设备中查看崩溃日志

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么? 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志,以便调查崩溃的原因。我们将展示三种不同的…

流媒体学习之路(WebRTC)——GCC分析(4)

流媒体学习之路(WebRTC)——GCC分析(4) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全配置…

【Java并发】深入浅出 synchronized关键词原理-上

一个问题的思考 建设我们有两个线程,一个进行5000次的相加操作,另一个进行5000次的减操作。那么最终结果是多少 package com.jia.syn;import java.util.concurrent.TimeUnit;/*** author qxlx* date 2024/1/2 10:08 PM*/ public class SynTest {privat…

使用Vue3开发学生管理系统模板1

环境搭建 通过解压之前《Vue3开发后台管理系统模板》的代码&#xff0c;我们能够得到用户增删改查的页面&#xff0c;我们基于用户增删改查的页面做进一步的优化。 创建学生增删改查页面 第一步&#xff1a;复制用户增删改查页面&#xff0c;重命名为StudentCRUD.vue <…

新闻稿发布:媒体重要还是价格重要

在当今信息爆炸的数字时代&#xff0c;企业推广与品牌塑造不可或缺的一环就是新闻稿发布。新闻稿是一种通过媒体渠道传递企业信息、宣传品牌、事件或产品新闻的文本形式。发布新闻稿的过程旨在将企业的声音传递给更广泛的受众&#xff0c;借助媒体平台实现品牌故事的广泛传播。…