Python 进阶(五):os 模块

Python 进阶(五):os 模块_第1张图片

❤️ 博客主页:水滴技术
订阅专栏:Python 入门核心技术
支持水滴:点赞 + 收藏⭐ + 留言

文章目录

  • 1. 文件和目录的基本操作
    • 1.1 获取当前工作目录
    • 1.2 更改当前工作目录
    • 1.3 获取目录下所有文件和目录
    • 1.4 创建目录
    • 1.5 删除文件
    • 1.6 删除目录
    • 1.7 递归删除目录
    • 1.8 重命名文件或目录
    • 1.9 获取文件或目录属性
  • 2. 文件和目录的遍历
    • 2.1 遍历目录树
    • 2.2 列出目录下的文件和目录
  • 3. 文件和目录的属性和权限
    • 3.1 获取文件或目录的访问和修改时间
    • 3.2 获取文件或目录的大小
    • 3.3 获取文件或目录的权限
  • 4. 文件和目录的路径操作
    • 4.1 获取文件名和目录名
    • 4.2 拼接路径
    • 4.3 分离路径和扩展名
    • 4.4 判断路径是否存在
    • 4.5 判断路径是否为文件或目录
  • 5. 总结
  • 系列文章
  • 热门专栏


大家好,我是水滴~~

Python 的 os 模块是一个与操作系统交互的模块,它提供了许多函数和方法,可以用于操作文件和目录。本教程将深入介绍 os 模块的各种功能和用法。

1. 文件和目录的基本操作

1.1 获取当前工作目录

os.getcwd() 方法可以获取当前工作目录的路径,即 Python 解释器当前所在的目录。

import os

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

1.2 更改当前工作目录

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

import os

# 更改当前工作目录
os.chdir('/path/to/new/directory')

1.3 获取目录下所有文件和目录

os.listdir(path) 方法可以获取指定目录下的所有文件和目录的名称列表。

import os

# 获取目录下所有文件和目录
path = '/path/to/directory'
dir_list = os.listdir(path)
print(dir_list)

1.4 创建目录

os.makedirs(path) 方法可以递归创建指定路径的目录,如果目录已经存在,则不会进行任何操作。

import os

# 创建目录
path = '/path/to/new/directory'
os.makedirs(path)

1.5 删除文件

os.remove(path) 方法可以删除指定路径的文件。

import os

# 删除文件
path = '/path/to/file'
os.remove(path)

1.6 删除目录

os.rmdir(path) 方法可以删除指定路径的目录,但前提是该目录必须为空。

import os

# 删除目录
path = '/path/to/empty/directory'
os.rmdir(path)

1.7 递归删除目录

shutil.rmtree(path) 方法可以递归删除指定路径的目录及其所有子目录和文件。

import shutil

# 递归删除目录
path = '/path/to/directory'
shutil.rmtree(path)

1.8 重命名文件或目录

os.rename(src, dst) 方法可以将指定路径的文件或目录重命名为另一个名称或路径。

import os

# 重命名文件或目录
src = '/path/to/old/name'
dst = '/path/to/new/name'
os.rename(src, dst)

1.9 获取文件或目录属性

os.stat(path) 方法可以获取指定路径的文件或目录的属性信息。

import os

# 获取文件或目录属性
path = '/path/to/file_or_directory'
info = os.stat(path)
print(info)

2. 文件和目录的遍历

2.1 遍历目录树

os.walk(top, topdown=True, onerror=None, followlinks=False) 方法可以遍历指定目录下的所有子目录和文件,并返回一个三元组,包含每个子目录路径、该目录下的所有目录名称列表和该目录下的所有文件名称列表。

import os

# 遍历目录树
for root, dirs, files in os.walk('/path/to/directory'):
    print('目录路径:', root)
    print('子目录列表:', dirs)
    print('文件列表:', files)

2.2 列出目录下的文件和目录

os.scandir(path) 方法可以列出指定路径的目录下的所有文件和目录,返回一个迭代器,包含每个文件和目录的详细信息。

import os

# 列出目录下的文件和目录
path = '/path/to/directory'
with os.scandir(path) as entries:
    for entry in entries:
        print(entry.name, entry.is_file(), entry.is_dir())

3. 文件和目录的属性和权限

3.1 获取文件或目录的访问和修改时间

os.path.getatime(path) 方法可以获取指定路径的文件或目录的最后访问时间。

os.path.getmtime(path) 方法可以获取指定路径的文件或目录的最后修改时间。

import os

# 获取文件或目录的访问和修改时间
path = '/path/to/file_or_directory'
atime = os.path.getatime(path)
mtime =os.path.getmtime(path)
print('最后访问时间:', atime)
print('最后修改时间:', mtime)

3.2 获取文件或目录的大小

os.path.getsize(path) 方法可以获取指定路径的文件或目录的大小,单位为字节。

import os

# 获取文件或目录的大小
path = '/path/to/file_or_directory'
size = os.path.getsize(path)
print('大小为:', size, '字节')

3.3 获取文件或目录的权限

os.stat(path) 方法返回的属性信息中包含了文件或目录的权限信息,可以使用 stat 模块的常量来解析这些属性。

import os
import stat

# 获取文件或目录的权限
path = '/path/to/file_or_directory'
mode = os.stat(path).st_mode
print('权限为:', oct(stat.S_IMODE(mode)))

4. 文件和目录的路径操作

4.1 获取文件名和目录名

os.path.basename(path) 方法可以获取指定路径的文件名或目录名。

os.path.dirname(path) 方法可以获取指定路径的目录名或上级目录名。

import os

# 获取文件名和目录名
path = '/path/to/file_or_directory'
filename = os.path.basename(path)
dirname = os.path.dirname(path)
print('文件名为:', filename)
print('目录名为:', dirname)

4.2 拼接路径

os.path.join(path1, path2, ...) 方法可以将多个路径拼接为一个路径。

import os

# 拼接路径
path1 = '/path/to'
path2 = 'file_or_directory'
path = os.path.join(path1, path2)
print('拼接后的路径为:', path)

4.3 分离路径和扩展名

os.path.splitext(path) 方法可以将指定路径的文件名分离为文件名和扩展名。

import os

# 分离路径和扩展名
path = '/path/to/file.txt'
name, ext = os.path.splitext(path)
print('文件名为:', name)
print('扩展名为:', ext)

4.4 判断路径是否存在

os.path.exists(path) 方法可以判断指定路径是否存在。

import os

# 判断路径是否存在
path = '/path/to/file_or_directory'
if os.path.exists(path):
    print('路径存在')
else:
    print('路径不存在')

4.5 判断路径是否为文件或目录

os.path.isfile(path) 方法可以判断指定路径是否为文件。

os.path.isdir(path) 方法可以判断指定路径是否为目录。

import os

# 判断路径是否为文件或目录
path = '/path/to/file_or_directory'
if os.path.isfile(path):
    print('路径为文件')
elif os.path.isdir(path):
    print('路径为目录')
else:
    print('路径不存在')

5. 总结

本教程深入介绍了 Python 的 os 模块的各种功能和用法,包括文件和目录的基本操作、遍历、属性和权限、路径操作等。 os 模块是 Python 编程中非常重要和实用的模块之一,熟练掌握其各种方法和技巧,可以帮助我们更加高效地处理文件和目录相关的任务。


系列文章

Python 进阶(一):PyCharm 下载、安装和使用
Python 进阶(二):操作字符串的常用方法
Python 进阶(三):正则表达式(re 模块)
Python 进阶(四):日期和时间(time、datetime、calendar 模块)

热门专栏

《Python入门核心技术》
《IDEA 教程:从入门到精通》
《Java 教程:从入门到精通》
《MySQL 教程:从入门到精通》
《大数据核心技术从入门到精通》

你可能感兴趣的:(Python入门核心技术,python,os)