文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

深入理解 Python 操作系统的 14 个 API

2024-11-29 18:35

关注

1.os.name

首先,让我们看看os.name。这个属性会返回当前运行Python脚本的操作系统名称。这对于编写跨平台的代码非常有用,因为你可以通过它来判断用户正在使用哪种操作系统。

代码示例:

import os

print("当前操作系统名称:", os.name)

输出:如果你在Windows上运行这段代码,输出将是 "nt";而在Linux或Mac OS上则是 "posix"。

2.os.getcwd()

接下来是os.getcwd(),它用来获取当前工作目录的路径。这对于处理文件路径特别有帮助。

代码示例:

import os

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

输出:例如,假设你的脚本位于C:\Users\YourName\Documents目录下,那么输出将会是这个路径。

3.os.chdir(path)

os.chdir(path)可以改变当前的工作目录到指定路径。这对于需要在不同目录间切换的脚本来说非常实用。

代码示例:

import os

# 改变到新的工作目录
os.chdir('C:\\temp')
print("新工作目录:", os.getcwd())

输出:如果C:\temp存在,那么输出就是该路径。

4.os.listdir(path='.')

os.listdir(path='.')返回指定目录下的所有文件和目录名。默认参数'.'表示当前目录。

代码示例:

import os

files = os.listdir('.')
for f in files:
    print(f)

输出:这会列出当前目录下的所有文件和子目录。

5.os.mkdir(path)

os.mkdir(path)用于创建一个新目录。这是一个非常基础但重要的功能。

代码示例:

import os

# 创建新目录
os.mkdir('new_directory')
print("新目录已创建")

输出:你会看到命令行提示“新目录已创建”,同时在你的工作目录中会出现一个名为new_directory的新目录。

6.os.makedirs(path)

os.makedirs(path)类似于os.mkdir(),但它可以创建多级目录。

代码示例:

import os

# 创建多级目录
os.makedirs('parent/child/subchild')
print("多级目录已创建")

输出:即使parent和child不存在,上述代码也会创建完整的路径。

7.os.rmdir(path)

os.rmdir(path)用来删除空目录。记住,只有当目录为空时,这个函数才能成功执行。

代码示例:

import os

# 删除空目录
os.rmdir('new_directory')
print("目录已删除")

输出:如果new_directory是空的,那么它会被删除,并打印出相应的信息。

8.os.remove(path)

os.remove(path)用于删除指定路径下的文件。这是一个危险的操作,请务必小心使用!

代码示例:

import os

# 删除文件
os.remove('test.txt')
print("文件已删除")

输出:如果test.txt存在,那么它会被删除,并显示删除成功的信息。

9.os.path.exists(path)

os.path.exists(path) 用于检查指定路径是否存在。这是非常常用的一个功能,特别是在处理文件和目录时。

代码示例:

import os

path = 'example.txt'
if os.path.exists(path):
    print(f"{path} 存在")
else:
    print(f"{path} 不存在")

输出:如果 example.txt 文件存在,则输出 “example.txt 存在”;否则输出 “example.txt 不存在”。

10.os.path.isdir(path)

os.path.isdir(path) 用于检查指定路径是否为目录。这在处理文件系统时非常有用。

代码示例:

import os

path = 'example_directory'
if os.path.isdir(path):
    print(f"{path} 是目录")
else:
    print(f"{path} 不是目录")

输出:如果 example_directory 存在并且是一个目录,则输出 “example_directory 是目录”;否则输出 “example_directory 不是目录”。

11.os.path.isfile(path)

os.path.isfile(path) 用于检查指定路径是否为文件。与 os.path.isdir() 类似,这也是一个非常基础且常用的功能。

代码示例:

import os

path = 'example.txt'
if os.path.isfile(path):
    print(f"{path} 是文件")
else:
    print(f"{path} 不是文件")

输出:如果 example.txt 存在并且是一个文件,则输出 “example.txt 是文件”;否则输出 “example.txt 不是文件”。

12.os.path.getsize(path)

os.path.getsize(path) 返回指定文件的大小(以字节为单位)。这对于获取文件占用的空间非常有用。

代码示例:

import os

path = 'example.txt'
if os.path.isfile(path):
    size = os.path.getsize(path)
    print(f"{path} 的大小为 {size} 字节")
else:
    print(f"{path} 不存在或不是文件")

输出:如果 example.txt 存在并且是一个文件,则输出其大小;否则输出相应的错误信息。

13.os.rename(src, dst)

os.rename(src, dst) 用于重命名文件或移动文件/目录。这是一个非常实用的功能,尤其是在处理大量文件时。

代码示例:

import os

src = 'old_name.txt'
dst = 'new_name.txt'

if os.path.exists(src):
    os.rename(src, dst)
    print(f"{src} 已重命名为 {dst}")
else:
    print(f"{src} 不存在")

输出:如果 old_name.txt 存在,则将其重命名为 new_name.txt 并输出相关信息;否则输出错误信息。

14.os.walk(top, topdown=True, onerror=None, followlinks=False)

os.walk(top, topdown=True, onerror=None, followlinks=False) 是一个非常强大的函数,用于遍历目录树。它可以生成目录树中的文件名,在目录树中递归地进行遍历。

代码示例:

import os

top = 'example_directory'
for root, dirs, files in os.walk(top):
    print(f"目录: {root}")
    for dir in dirs:
        print(f"  子目录: {os.path.join(root, dir)}")
    for file in files:
        print(f"  文件: {os.path.join(root, file)}")

输出:这段代码会遍历 example_directory 及其子目录,并打印出所有的子目录和文件路径。

实战案例:备份文件夹

现在,让我们通过一个实际的场景来综合运用这些API。假设你需要备份某个目录及其所有子目录和文件。我们可以使用 os 模块来实现这个功能。

代码示例:

import os
import shutil

def backup_directory(source_dir, backup_dir):
    if not os.path.exists(backup_dir):
        os.makedirs(backup_dir)

    for root, dirs, files in os.walk(source_dir):
        relative_path = os.path.relpath(root, source_dir)
        target_path = os.path.join(backup_dir, relative_path)
        
        if not os.path.exists(target_path):
            os.makedirs(target_path)

        for file in files:
            source_file = os.path.join(root, file)
            backup_file = os.path.join(target_path, file)
            shutil.copy2(source_file, backup_file)

source_directory = 'example_directory'
backup_directory = 'backup_directory'

backup_directory(source_directory, backup_directory)
print(f"{source_directory} 已备份到 {backup_directory}")

输出:这段代码会将 example_directory 及其所有子目录和文件备份到 backup_directory 中,并输出相应的信息。

总结

本文详细介绍了os模块中的14个常用API,包括了文件和目录的基本操作、路径检查以及目录树的遍历等功能。通过这些API,我们可以更方便地处理各种文件系统相关的任务。希望这些知识能够帮助你更加高效地使用Python进行开发。

来源:手把手PythonAI编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯