Python中的os模块中的常用方法

这篇具有很好参考价值的文章主要介绍了Python中的os模块中的常用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python中的os模块(Operating System模块)提供了与操作系统交互的函数。以下是一些os模块中常用的方法:

一、文件和目录操作:

  • os.getcwd(): 获取当前工作目录。
import os

# 获取当前工作目录
current_directory = os.getcwd()

# 打印结果
print("当前工作目录:", current_directory)
  • os.chdir(path): 改变当前工作目录。
import os

# 获取当前工作目录
current_directory_before = os.getcwd()

# 打印当前工作目录
print("当前工作目录(更改前):", current_directory_before)

# 指定新的路径
new_directory = "/path/to/your/directory"

# 改变当前工作目录到新路径
os.chdir(new_directory)

# 获取改变后的当前工作目录
current_directory_after = os.getcwd()

# 打印改变后的当前工作目录
print("当前工作目录(更改后):", current_directory_after)
  • os.listdir(path='.'): 返回指定目录下的所有文件和目录列表。
import os

# 指定要列出文件的目录
directory_path = "/path/to/your/directory"

# 获取目录下的文件和文件夹列表
contents = os.listdir(directory_path)

# 打印结果
print(f"目录 '{directory_path}' 下的内容:")
for item in contents:
    print(item)
  • os.mkdir(path): 创建目录。

注意,该方法创建单层目录 。如果上级目录不存在,会引发 'FileNotFoundError'。

import os

# 指定要创建的目录的路径
new_directory_path = "/path/to/your/new_directory"

# 创建新目录
os.mkdir(new_directory_path)

print(f"目录 '{new_directory_path}' 已创建成功。")
  • os.makedirs(path): 递归创建多层目录。

注意,递归创建多层目录。如果上级目录不存在,会自动创建上级目录。

import os

# 指定要创建的目录的路径(包括多层目录)
new_directory_path = "/path/to/your/new_directory/multiple/levels"

try:
    # 创建多层目录
    os.makedirs(new_directory_path)
    print(f"目录 '{new_directory_path}' 及其上级目录已创建成功。")
except Exception as e:
    print(f"创建目录时发生错误: {e}")
  • os.remove(path): 删除文件。
import os

# 指定要删除的文件路径
file_path = "/path/to/your/file.txt"

try:
    # 删除文件
    os.remove(file_path)
    print(f"文件 '{file_path}' 已成功删除。")
except FileNotFoundError:
    print(f"无法删除文件 '{file_path}',因为文件不存在。")
except Exception as e:
    print(f"删除文件时发生错误: {e}")
  • os.rmdir(path): 删除目录(只能删除空目录)。

注意,os.rmdir(path) 用于删除指定路径上的空目录。如果目录不为空,os.rmdir() 会引发 OSError。

import os

# 指定要删除的目录路径
directory_path = "/path/to/your/empty_directory"

try:
    # 删除空目录
    os.rmdir(directory_path)
    print(f"目录 '{directory_path}' 已成功删除。")
except FileNotFoundError:
    print(f"无法删除目录 '{directory_path}',因为目录不存在。")
except OSError as e:
    print(f"删除目录时发生错误: {e}")
  • os.removedirs(path): 递归删除目录树。

注意,os.removedirs(path) 函数用于递归地删除目录树。与 os.rmdir() 不同,os.removedirs() 会删除指定路径上的目录及其上级目录,只要它们都是空的。如果目录中有非空的子目录或文件,删除将失败。如果需要删除非空目录树,可以考虑使用 shutil.rmtree()。

import os

# 指定要删除的目录路径
directory_path = "/path/to/your/directory_tree"

try:
    # 递归删除目录树
    os.removedirs(directory_path)
    print(f"目录树 '{directory_path}' 及其上级目录已成功删除。")
except FileNotFoundError:
    print(f"无法删除目录树 '{directory_path}',因为路径不存在。")
except OSError as e:
    print(f"删除目录树时发生错误: {e}")

二、路径操作:

  • os.path.join(path, *paths): 将多个路径组合成一个路径。
import os

# 指定路径的各个部分
base_path = "/path/to/your/base"
subfolder = "subfolder"
file_name = "example.txt"

# 使用 os.path.join() 连接路径
full_path = os.path.join(base_path, subfolder, file_name)

# 打印连接后的路径
print(f"连接后的路径: {full_path}")
  • os.path.abspath(path): 返回绝对路径。
import os

# 指定相对路径
relative_path = "subfolder/example.txt"

# 使用 os.path.abspath() 获取绝对路径
absolute_path = os.path.abspath(relative_path)

# 打印结果
print(f"相对路径: {relative_path}")
print(f"绝对路径: {absolute_path}")
  • os.path.exists(path): 判断路径是否存在。
import os

# 指定要检查的路径
path_to_check = "/path/to/your/file.txt"

# 使用 os.path.exists() 检查路径是否存在
if os.path.exists(path_to_check):
    print(f"路径 '{path_to_check}' 存在。")
else:
    print(f"路径 '{path_to_check}' 不存在。")
  • os.path.isfile(path): 判断是否为文件。
import os

# 指定要检查的路径
file_path = "/path/to/your/file.txt"

# 使用 os.path.isfile() 检查路径是否为文件
if os.path.isfile(file_path):
    print(f"路径 '{file_path}' 是一个文件。")
else:
    print(f"路径 '{file_path}' 不是一个文件,可能是目录或不存在。")
  • os.path.isdir(path): 判断是否为目录。
import os

# 指定要检查的路径
directory_path = "/path/to/your/directory"

# 使用 os.path.isdir() 检查路径是否为目录
if os.path.isdir(directory_path):
    print(f"路径 '{directory_path}' 是一个目录。")
else:
    print(f"路径 '{directory_path}' 不是一个目录,可能是文件或不存在。")

三、系统环境变量:

  • os.environ: 包含系统环境变量的字典。
import os

# 获取所有环境变量
all_env_variables = os.environ

# 打印所有环境变量
print("所有环境变量:")
for key, value in all_env_variables.items():
    print(f"{key}: {value}")

# 获取特定环境变量的值
home_directory = os.environ.get('HOME', '未设置')  # 如果不存在,返回默认值 '未设置'

# 打印特定环境变量的值
print(f"HOME 环境变量的值: {home_directory}")
  • os.getenv(key, default=None): 获取环境变量的值。
import os

# 获取 HOME 环境变量的值
home_directory = os.getenv('HOME', '未设置')  # 如果不存在,返回默认值 '未设置'

# 打印 HOME 环境变量的值
print(f"HOME 环境变量的值: {home_directory}")

# 获取不存在的环境变量的值,并指定默认值
nonexistent_variable = os.getenv('NONEXISTENT_VARIABLE', '默认值')

# 打印不存在的环境变量的值
print(f"NONEXISTENT_VARIABLE 环境变量的值: {nonexistent_variable}")

四、执行系统命令:

  • os.system(command): 在子shell中执行系统命令。

注意,1、示例中,os.system('pwd') 在类 Unix 系统上执行命令来打印当前工作目录,而在 Windows 上可能需要使用 os.system('cd') 或 os.system('echo %cd%')。执行命令后,os.system() 返回命令的退出状态码,并通过 print 打印出来。

        2、os.system() 存在一些安全性和平台差异的问题,可以使用 subprocess 模块来执行命令,它提供了更多的控制和安全性。例如,subprocess.run() 是一个替代方案。

import os

# 执行一个简单的命令,例如打印当前工作目录
command = 'pwd'  # 在 Windows 上可能是 'cd' 或 'echo %cd%'

# 使用 os.system() 执行命令
exit_status = os.system(command)

# 打印命令的退出状态码
print(f"命令 '{command}' 的退出状态码: {exit_status}")
  • os.popen(command): 打开一个管道,执行系统命令。

注意,1、示例中,os.popen('ls') 在类 Unix 系统上执行命令来列出当前目录下的文件,而在 Windows 上可能需要使用 os.popen('dir')。os.popen() 返回一个文件对象,可以通过 read() 方法读取命令的输出内容,然后通过 print 打印出来。最后,记得关闭文件对象,释放资源。
        2、与 os.system() 一样,os.popen() 也存在一些安全性和平台差异的问题,也可以使用 subprocess 模块来执行命令,以获得更多的控制和安全性。

import os

# 执行一个简单的命令,例如列出当前目录下的文件
command = 'ls'  # 在 Windows 上可能是 'dir'

# 使用 os.popen() 执行命令并获取输出文件对象
output_file = os.popen(command)

# 读取命令的输出内容
output_content = output_file.read()

# 打印命令的输出内容
print(f"命令 '{command}' 的输出:\n{output_content}")

# 关闭文件对象
output_file.close()

五、文件路径拆分:

  • os.path.split(path): 将路径拆分为目录和文件名。
import os

# 指定路径
file_path = "/path/to/your/file.txt"

# 使用 os.path.split() 分割路径
directory, file_name = os.path.split(file_path)

# 打印分割后的结果
print(f"目录: {directory}")
print(f"文件名: {file_name}")
  • os.path.splitext(path): 将路径拆分为文件名和扩展名。
import os

# 指定文件路径
file_path = "/path/to/your/file.txt"

# 使用 os.path.splitext() 分割文件路径
file_name, file_extension = os.path.splitext(file_path)

# 打印分割后的结果
print(f"文件名: {file_name}")
print(f"扩展名: {file_extension}")

六、其他:

  • os.name: 获取操作系统名称('posix' 或 'nt')。

通常,'posix' 表示类 Unix 操作系统,'nt' 表示 Windows 操作系统。

import os

# 获取当前操作系统的名称
current_os_name = os.name

# 打印当前操作系统的名称
print(f"当前操作系统的名称: {current_os_name}")
  • os.path.getsize(path): 获取文件大小。
import os

# 指定文件路径
file_path = "/path/to/your/file.txt"

# 使用 os.path.getsize() 获取文件大小
file_size = os.path.getsize(file_path)

# 打印文件大小
print(f"文件 '{file_path}' 的大小: {file_size} 字节")
  • os.path.getctime(path): 获取文件的创建时间。
import os
import datetime

# 指定文件路径
file_path = "/path/to/your/file.txt"

# 使用 os.path.getctime() 获取文件创建时间
ctime_timestamp = os.path.getctime(file_path)

# 将时间戳转换为可读的日期时间格式
ctime_datetime = datetime.datetime.fromtimestamp(ctime_timestamp)

# 打印文件创建时间
print(f"文件 '{file_path}' 的创建时间: {ctime_datetime}")
  • os.path.getmtime(path): 获取文件的最后修改时间。
import os
import datetime

# 指定文件路径
file_path = "/path/to/your/file.txt"

# 使用 os.path.getmtime() 获取文件最后修改时间
mtime_timestamp = os.path.getmtime(file_path)

# 将时间戳转换为可读的日期时间格式
mtime_datetime = datetime.datetime.fromtimestamp(mtime_timestamp)

# 打印文件最后修改时间
print(f"文件 '{file_path}' 的最后修改时间: {mtime_datetime}")

七、更多

os模块 官方文档:os — Miscellaneous operating system interfaces

os模块 中文文档:os — 操作系统接口文章来源地址https://www.toymoban.com/news/detail-771934.html

到了这里,关于Python中的os模块中的常用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python常用OS库之path模块学习

    学习python没有太多捷径,有也只有技巧,更重要的是要多学多练,个人觉得练更重要,读万卷书不如行万里路。编程是一门技能,所以除了看还要多实践,写得多了自然也就有了路。 如果看全部的标准库文档,可以访问这个链接 os --- 多种操作系统接口 — Python 3.12.3 文档 接

    2024年04月14日
    浏览(41)
  • Python模块和包:sys模块、os模块和变量函数的使用

    模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序。模块化具有方便开发、维护和复用的优点。在Python中,每个py文件就是一个模块。 在一个模块中引入外部模块有两种方式: import 模块名 和 import 模块名 as 模块别名 。后者可以

    2024年02月08日
    浏览(33)
  • 深入探索Python中的os.listdir函数

    1. 引言 在Python中,文件和目录操作是常见的任务之一。而 os.listdir() 函数是Python中用于获取指定目录下所有文件和子目录的函数之一。本篇博客将深入探索 os.listdir() 函数的用法和注意事项。 2. os模块简介 Python的os模块是与操作系统交互的一个接口,提供了许多与文件和目录

    2024年02月08日
    浏览(41)
  • 深入了解Python中的os.path.join函数

    在Python中,处理文件和目录路径是常见的任务。为了简化路径的拼接和操作,Python提供了 os.path 模块,其中的 join 函数是一个非常重要且常用的函数。本文将深入介绍 os.path.join 函数的用法和注意事项,以帮助读者更好地理解和使用该函数。 os.path 模块是Python中用于处理文件

    2024年02月09日
    浏览(44)
  • 深入理解Python中的os.chdir()方法

    在Python中,os.chdir()方法用于改变当前的工作目录。工作目录是指当前正在执行的脚本所在的目录。通过使用os.chdir()方法,我们可以在脚本执行过程中切换到不同的目录。 在编写Python脚本时,我们经常需要操作文件和目录。而os.chdir()方法可以帮助我们在不同的目录之间进行切

    2024年02月15日
    浏览(59)
  • Python常用的数据处理函数和模块

    Python还提供了许多其他用于数据处理和转换的内置函数和模块。以下是一些常用的数据处理函数和模块: sorted(iterable, key=func, reverse=False) 用于对可迭代对象进行排序。你可以指定一个可选的 key 函数来自定义排序规则,以及一个可选的 reverse 参数来控制升序或降序排序。 en

    2024年02月05日
    浏览(56)
  • 【python基础】函数-模块

    函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定函数名称,可让主程序容易理解的多。我们还可以更加细化,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import作用就是将模块中的代码导入到当前主程序中。 通过将函数存

    2024年02月09日
    浏览(41)
  • Python中的常用函数

    for i in range () 就是给i赋值: 比如 for i in range (1,3): 就是把1,2依次赋值给i range () 函数的使用是这样的: range(start, stop[, step]),分别是起始、终止和步长 举例: range(3)即:从0到3,不包含3,即0,1,2 range(1,3,2)即:从1到3,每次增加2,因为1+2=3,所以输出只有1 第三个数字

    2024年02月05日
    浏览(35)
  • 【零基础入门学习Python---Python函数和模块】

    🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验

    2024年02月11日
    浏览(42)
  • 【python基础语法七】python内置函数和内置模块

    eval 和 exec 在和第三方用户交互时候,谨慎使用; 应用不一样: json主要用于传输 转换关系 localtime = mktime = ctime

    2024年02月01日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包