首页 > 编程语言 >Python教程:开箱即用的Python os模块知识

Python教程:开箱即用的Python os模块知识

时间:2024-06-24 13:28:30浏览次数:3  
标签:Python 环境变量 开箱 file directory path os 目录

1. 简介

注:文末有福利领取哦


Python 的 os 模块提供了许多接口用于与操作系统进行交互,包括文件操作、目录操作、路径操作、环境变量操作、系统信息获取等。以下是 os 模块中常用的接口及其解释:

  1. 文件和目录操作

    • os.remove(path): 删除指定路径的文件。
    • os.rename(src, dst): 重命名文件或目录。
    • os.mkdir(path): 创建新目录。
    • os.rmdir(path): 删除指定目录。
    • os.listdir(path): 返回指定目录下的所有文件和目录列表。
  2. 路径操作

    • os.path.join(path1, path2, ...):拼接路径。
    • os.path.abspath(path): 返回路径的绝对路径表示。
    • os.path.exists(path): 判断路径是否存在。
    • os.path.isfile(path): 判断路径是否为文件。
    • os.path.isdir(path): 判断路径是否为目录。
  3. 环境变量操作

    • os.getenv(key): 获取指定环境变量的值。
    • os.putenv(key, value): 设置指定环境变量的值。
    • os.environ: 包含当前环境变量的字典。
  4. 系统信息

    • os.name: 返回当前操作系统的名称(‘posix’ 或 ‘nt’)。
    • os.uname(): 返回关于操作系统的信息(仅限 Unix 系统)。
    • os.getlogin(): 返回当前登录用户名。
  5. 权限和属性

    • os.chmod(path, mode): 修改文件或目录的权限。
    • os.stat(path): 获取文件或目录的状态信息。
    • os.utime(path, times): 修改文件或目录的访问和修改时间。
  6. 执行系统命令

    • os.system(command): 在子 shell 中执行系统命令。
    • os.popen(command): 执行系统命令并返回一个文件对象。

下面我会针对常用的接口进行代码示例和说明。

2. 基本文件和目录操作


2.1 获取当前工作目录

  • os.getcwd(): 返回当前工作目录的绝对路径。
import os

current_directory = os.getcwd()
print("Current directory:", current_directory)

2.2 创建目录

  • os.mkdir(path): 创建一个新目录。
import os

new_dir_path = "new_directory"
os.mkdir(new_dir_path)

2.3 判断路径是否是目录

  • os.path.isdir(path): 如果给定路径是目录,则返回True
import os

path = "some_directory"
if os.path.isdir(path):
    print(f"{path} is a directory.")
else:
    print(f"{path} is not a directory.")

3. 文件操作


3.1 检查文件是否存在

  • os.path.exists(path): 如果指定路径存在,则返回True
import os

file_path = "file.txt"
if os.path.exists(file_path):
    print(f"{file_path} exists.")
else:
    print(f"{file_path} does not exist.")

3.2 删除文件

  • os.remove(file_path): 删除指定的文件。
import os

file_path = "file_to_delete.txt"
os.remove(file_path)

3.3 重命名文件

  • os.rename(src, dst): 重命名文件或目录。
import os

old_file_name = "old_name.txt"
new_file_name = "new_name.txt"
os.rename(old_file_name, new_file_name)

4. 高级文件/目录操作


4.1 遍历目录

  • os.listdir(directory): 返回指定目录中的所有文件和子目录名称。
import os

directory_path = "some_dir"
for item in os.listdir(directory_path):
    print(item)

4.2 递归遍历目录

  • 使用递归函数结合os.path.join()进行深度优先搜索。
import os

def list_files_recursively(directory):
    for root, dirs, files in os.walk(directory):
        for file in files:
            print(os.path.join(root, file))

list_files_recursively("root_directory")

5. 获取环境变量


通过os.environ可以获取当前系统的所有环境变量及其对应的取值。

import os

# 获取单个环境变量的取值
home_directory = os.environ.get('HOME')
print("Home directory:", home_directory)

# 获取所有环境变量及其取值
for key, value in os.environ.items():
    print(f"{key}: {value}")

6. 设置/修改环境变量


使用os.environ[key] = value来设置或修改一个环境变量。

import os

# 设置新的环境变量
os.environ['MY_VAR'] = 'my_value'

# 修改已存在的环境变量
os.environ['PATH'] += ':/new_path'

# 保存这些更改
os.putenv('CUSTOM_VAR', 'custom_value')  # 可选项,保存更改至OS环境

7. 删除环境变量


可以使用del os.environ[key]来删除一个环境变量。

import os

# 删除特定环境变量
if 'MY_VAR' in os.environ:
    del os.environ['MY_VAR']

# 保存更改
os.putenv('MY_VAR', '')  # 删除 MY_VAR 变量

8.常见面试题


面试题:解释os.path.abspath()os.path.realpath()之间的区别是什么?

答案:

  • os.path.abspath(path)函数返回给定路径的绝对路径形式。这意味着它将消除所有符号链接、符号名等,并且将当前工作目录添加到相对路径。
  • os.path.realpath(path)函数通过执行实际系统调用来确定给定路径的真实路径。它处理绝对路径和符号链接,然后返回规范化的绝对路径。

实际上,os.path.abspath()只是将相对路径转换为绝对路径,而os.path.realpath()则会解析所有符号链接并返回一个指向真实文件的路径。

如果你对Python入门感兴趣,那么你需要的话可以
点击这里

标签:Python,环境变量,开箱,file,directory,path,os,目录
From: https://blog.csdn.net/python1999319/article/details/139885008

相关文章

  • SSM-学情分析系统-56772(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、APP
    学情分析系统摘 要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于学情分析系统当然也不能排除在外,随着网络技术的不断成熟,带动了学情分析系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这......
  • python创建websocket服务器,实现循环发送消息
    WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更低延迟的双向通信。它允许客户端和服务器在任何时候发送消息,无需重新建立TCP连接。WebSocket可以在Web浏览器和服务器之间传输文本和二进制数据,使得构建实时Web......
  • 基于SpringBoot的高校大学生学科竞赛管理系统+53135(免费领源码)可做计算机毕业设计JAVA
    springboot高校大学生学科竞赛管理系统的设计与实现摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设高校大学生学科竞赛管理系统。......
  • java java.nio.channels.ClosedChannelException
    java.nio.channels.ClosedChannelException报错信息"java.nio.channels.ClosedChannelException"表示尝试在一个已经关闭的通道上进行操作。在JavaNIO中,通道(Channel)表示一个可以进行IO操作的对象,例如读取或写入数据。当你尝试在一个已经被关闭的通道上进行读取、写入或者其他......
  • 基于 ROS 的 Terraform 托管服务轻松部署文本转语音系统 ChatTTS
    介绍ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。ChatTTSwebUI&API为ChatTTS提供了网页界面和API服务。资源编排服务(ResourceOrchestrationService,ROS)是阿里云提......
  • CentOS 7安装Docker,并进行docker加速,拉取镜像
    #step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#Step3:更新并安装Docker-CEsudoy......
  • 使用CEntOS 7.9系统管理MySQL数据库
    一:使用MySQL数据库1:查看数据库结构[root@localhost~]#mysql-uroot-ppwd123mysql>showdatabases;mysql>usemysqlmysql>showtables;mysql>describeuser;mysql>select*fromuser\G;备注:information_schema数据库:保存着关于MySQL服务器所维护的所有其......
  • 【杂记-浅谈OSI参考模型之应用层】
    OSI参考模型之应用层一、应用层概述二、应用层功能三、应用层协议一、应用层概述应用层是计算机网络体系结构中的最高层,它直接为用户和应用程序提供服务。在OSI模型中,应用层对应于第7层,而在TCP/IP模型中,它包括了OSI模型中的第5、6、7层。应用层的作用是在网络中实现......
  • CentOS7 升级内核记录
    为什么要升级kernel安全性提升:新版本的kernel通常修复了旧版本中的安全漏洞。性能改进:升级可能包含对硬件支持的改进,从而提高系统性能。新功能:新版本可能引入了新的功能或改进了现有功能。更好的兼容性:新kernel可能会更好地支持最新的硬件和软件。但是,升级kernel也可能带来......
  • 虚拟机centos7,无法ping通百度
    参考:centos7虚拟机静态ip设置详细教程(超全超详细亲测有效)_centos7设置静态ip-CSDN博客一、虚拟机需要设置这个网络编辑器,网络选为NAT模式。 打开命令行,执行:vim/etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPR......