python中os库的具体使用

 更新时间:2024年11月26日 08:30:29   作者:iiiiheng  
本文介绍了Python中os库的一些常见功能,包括获取和改变工作目录、列出目录内容、创建和删除目录等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

以下是关于 Python 中 os 库的一些常见知识点及相应的例子说明:

1. 导入 os 库

在使用 os 库之前,需要先导入它。通常使用以下方式导入:

import os

2. 获取当前工作目录

os.getcwd() 函数用于获取当前 Python 脚本所在的工作目录。
例子:

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

假设你的 Python 脚本在 /home/user/projects 目录下运行,那么输出可能是:
当前工作目录: /home/user/projects

3. 改变工作目录

os.chdir() 函数可以用来改变当前的工作目录。
例子:

import os

# 假设当前工作目录是 /home/user/projects
os.chdir("/home/user/documents")
new_current_directory = os.getcwd()
print("改变后的工作目录:", new_current_directory)

输出可能是:

改变后的工作目录: /home/user/documents

4. 列出目录内容

os.listdir() 函数用于列出指定目录下的所有文件和子目录(不包括隐藏文件和目录,除非特别设置)。
例子:

import os

# 假设当前工作目录是 /home/user/documents
directory_contents = os.listdir()
print("目录内容:", directory_contents)

如果 /home/user/documents 目录下有文件 file1.txt、file2.jpg 和子目录 subdir,那么输出可能是:

目录内容: ['file1.txt', 'file2.jpg', 'subdir']

5. 创建目录

os.mkdir() 函数用于创建一个新的目录。
例子:

import os

# 假设当前工作目录是 /home/user/documents
new_directory_name = "new_dir"
os.mkdir(new_directory_name)
print(f"已创建目录:{new_directory_name}")

执行上述代码后,在 /home/user/documents 目录下将会创建一个名为 new_dir 的新目录。

6. 删除目录

os.rmdir() 函数用于删除一个空的目录(即目录内不能有任何文件或子目录)。
例子:

import os

# 假设当前工作目录是 /home/user/documents
directory_to_delete = "new_dir"
os.rmdir(directory_to_delete)
print(f"已删除目录:{directory_to_delete}")

执行上述代码后,将会删除在前面例子中创建的 new_dir 目录(前提是该目录为空)。

7. 判断文件或目录是否存在

os.path.exists() 函数用于判断指定的文件或目录是否存在。
例子:

import os

file_path = "/home/user/documents/file1.txt"
directory_path = "/home/user/documents/subdir"

if os.path.exists(file_path):
    print(f"{file_path} 存在")
else:
    print(f"{file_path} 不存在")

if os.path.exists(directory_path):
    print(f"{directory_path} 存在")
else:
    print(f"{directory_path} 不存在")

根据实际情况,将会输出相应的存在或不存在的信息。

8. 判断是文件还是目录

os.path.isfile() 函数用于判断指定的路径是文件还是目录,返回 True 如果是文件,False 如果是目录。同样,os.path.isdir() 函数用于判断是否为目录,返回 True 如果是目录,False 如果是文件。
例子:

import os

path = "/home/user/documents/file1.txt"

if os.path.isfile(path):
    print(f"{path} 是文件")
else:
    print(f"{path} 是目录")

path = "/home/user/documents/subdir"

if os.path.isdir(path):
    print(f"{path} 是目录")
else:
    print(f"{path} 是文件")

根据实际情况,将会输出相应的判断结果。

9. 获取文件大小

os.path.getsize() 函数用于获取指定文件的大小,单位是字节。
例子:

import os

file_path = "/home/user/documents/file1.txt"
file_size = os.path.getsize(file_path)
print(f"{file_path} 的大小为 {file_size} 字节")

将会输出指定文件的大小信息。

10. 拼接路径

os.path.join() 函数用于将多个路径片段拼接成一个完整的路径,这样可以避免因操作系统不同而导致的路径分隔符问题(Windows 使用 \,Linux 和 macOS 使用 /)。
例子:

import os

directory = "/home/user/documents"
file_name = "file1.txt"
full_path = os.path.join(directory, file_name)
print(f"拼接后的路径:{full_path}")

输出将会是一个完整的路径,如:

拼接后的路径: /home/user/documents/file1.txt

11. 获取文件的绝对路径

os.path.abspath() 函数用于获取指定文件或目录的绝对路径。
例子:

import os

relative_path = "test.txt"
absolute_path = os.path.abspath(relative_path)
print("文件的绝对路径:", absolute_path)

假设当前工作目录是 /home/user/documents,且该目录下存在 test.txt 文件,那么输出可能是:

文件的绝对路径: /home/user/documents/test.txt

12. 获取文件的扩展名

os.path.splitext() 函数可以将文件名拆分成文件名主体和扩展名两部分,并返回一个包含这两部分的元组。
例子:

import os

file_path = "/home/user/documents/file1.txt"
name, extension = os.path.splitext(file_path)
print("文件名主体:", name)
print("扩展名:", extension)

输出:

文件名主体: /home/user/documents/file1
扩展名:.txt

13. 分离路径中的目录和文件名

os.path.dirname() 和 os.path.basename() 函数分别用于获取路径中的目录部分和文件名部分。
例子:

import os

file_path = "/home/user/documents/file1.txt"
directory = os.path.dirname(file_path)
filename = os.path.basename(file_path)
print("目录部分:", directory)
print("文件名部分:", filename)

输出:

目录部分: /home/user/documents
文件名部分: file1.txt

14. 重命名文件或目录

os.rename() 函数用于对文件或目录进行重命名操作。
例子:

import os

original_name = "/home/user/documents/file1.txt"
new_name = "/home/user/documents/file2.txt"
os.rename(original_name, new_name)
print(f"已将 {original_name} 重命名为 {new_name}")

执行上述代码后,file1.txt 文件将被重命名为 file2.txt。

15. 复制文件(需要借助 shutil 库)

虽然 os 库本身没有直接提供复制文件的功能,但可以结合 shutil 库来实现。这里先简单介绍下与 os 相关的部分,假设已经导入了 shutil 库。
例子:

import os
import shutil

source_file = "/home/user/documents/file2.txt"
destination_file = "/home/user/documents/copy_file2.txt"
shutil.copyfile(source_file, destination_file)
print(f"已将 {source_file} 复制到 {destination_file}")

执行上述代码后,file2.txt 文件将被复制到 destination_file 位置,生成一个新的文件 copy_file2.txt。

16. 遍历目录树(包括子目录)

可以使用 os.walk() 函数来遍历一个目录及其所有子目录,它会返回一个生成器,每次迭代会返回一个三元组,包含当前目录、当前目录下的子目录列表和当前目录下的文件列表。
例子:

import os

root_directory = "/home/user/documents"

for root, dirs, files in os.walk(root_directory):
    print("当前目录:", root)
    print("子目录列表:", dirs)
    print("文件列表:", files)
    print("-" * 50)

执行上述代码后,会依次遍历 /home/user/documents 目录及其所有子目录,并输出每个目录的相关信息。

17. 判断路径是否为绝对路径

os.path.isabs() 函数用于判断一个路径是否为绝对路径,返回 True 如果是绝对路径,False 如果是相对路径。
例子:

import os

path1 = "/home/user/documents/file1.txt"
path2 = "documents/file1.txt"

if os.path.isabs(path1):
    print(f"{path1} 是绝对路径")
else:
    print(f"{path1} 是相对路径")

if os.path.isabs(path2):
    print(f"{path2} 是绝对_path")
else:
    print(f"{path2} 是相对_path")

根据实际情况,会输出相应的判断结果。

18. 获取当前操作系统名称

os.name 可以获取当前运行 Python 程序的操作系统名称,在 Windows 下返回 nt,在 Linux 和 macOS 下返回 posix。
例子:

import os

operating_system = os.name
print("当前操作系统:", operating_system)

根据你运行程序的操作系统,会输出相应的结果,如在 Windows 下输出 nt,在 Linux 下输出 posix。

19. 清除控制台屏幕(在某些操作系统下)

在 Windows 下,可以使用 os.system(‘cls’) 来清除控制台屏幕;在 Linux 和 macOS 下,可以使用 os.system(‘clear’)。
例子:

import os

# 假设在Windows下运行
os.system('cls')
# 假设在Linux或macOS下运行
os.system('clear')

注意:这种方式只是简单地调用系统命令来实现清除屏幕的功能,在一些复杂的环境下可能效果不佳或存在兼容性问题。

20. 查找文件或目录(在指定目录及子目录中)

可以使用 os.walk() 结合条件判断来查找指定的文件或目录在某个目录及其子目录中的位置。
例子:

import os

root_directory = "/home/user/documents"
target_file = "file1.txt"

for root, dirs, files in os.walk(root_directory):
    if target_file in files:
        print(f"找到 {target_file} 在 {root} 目录下")
        break

执行上述代码后,如果 file1.txt 在 /home/user/documents 及它的子目录中存在,那么会输出其所在的目录位置。

到此这篇关于python中os库的具体使用的文章就介绍到这了,更多相关python os库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python流程控制 if else实现解析

    Python流程控制 if else实现解析

    这篇文章主要介绍了Python 流程控制 if else实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python中字典和列表的相互嵌套问题详解

    python中字典和列表的相互嵌套问题详解

    这篇文章主要为大家详细介绍了python中字典和列表相互嵌套的问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • python程序控制NAO机器人行走

    python程序控制NAO机器人行走

    这篇文章主要为大家详细介绍了python程序控制NAO机器人行走,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Python 私有属性与私有方法

    Python 私有属性与私有方法

    这篇文章主要介绍了Python 私有属性与私有方法,私有属性是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的内部被使用,但不想在外部被访问到这些属,下面我们就进入文章一起了解更多信息内容吧
    2022-03-03
  • python3.9实现pyinstaller打包python文件成exe

    python3.9实现pyinstaller打包python文件成exe

    这篇文章主要介绍了python3.9实现pyinstaller打包python文件成exe,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python Pexpect库自动化交互式进程控制的expect_list方法解析

    Python Pexpect库自动化交互式进程控制的expect_list方法解析

    Pexpect是一个Python库,为自动化和交互式进程控制提供了丰富的功能,而expect_list方法是其功能强大且灵活的一部分,将详细探讨如何使用这一方法,并提供多个示例来说明其应用场景和功能
    2024-01-01
  • Python字符串和文件操作常用函数分析

    Python字符串和文件操作常用函数分析

    这篇文章主要介绍了Python字符串和文件操作常用函数,实例分析了Python中字符串及文件操作的常用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python找出最小的K个数实例代码

    Python找出最小的K个数实例代码

    这篇文章主要介绍了Python找出最小的K个数实例代码,简单分析了实现思路,冒泡法和partition思想,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python 专题一 函数的基础知识

    Python 专题一 函数的基础知识

    本文从系统提供的内部函数、第三方提供函数库+简单爬出代码及安装httplib2模块过程和用户自定函数三个方面进行讲述。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 详解Windows下源码编译PaddlePaddle

    详解Windows下源码编译PaddlePaddle

    这篇文章主要为大家介绍了Windows下从源码编译PaddlePaddle解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论