关键词

Python关于OS文件目录处理的实例分享

针对“Python关于OS文件目录处理的实例分享”的完整攻略,以下是详细的讲解:

1. 简介

在Python编程中,通过OS模块能够轻松处理文件和目录,而且可以跨平台使用。本攻略主要介绍如何使用Python的OS模块来处理文件和目录。

2. OS模块的使用

Python的OS模块可以访问操作系统文件系统。该模块提供了大量的函数用于与操作系统交互操作。下面是一些常用的OS函数:

2.1 os.path模块

os.path模块是os模块的一部分,用于处理文件路径。通过os.path模块,能够获得文件和目录的相关信息。

2.1.1 获取文件/目录基本信息

可以使用以下函数获取文件的基本信息:

  • os.path.basename(path): 返回path最后一部分,如'file.txt'。

例如:

import os

# 获取文件名
print(os.path.basename('/usr/local/bin/python'))  # python

可以使用以下函数获取目录的基本信息:

  • os.path.dirname(path): 返回path除文件名外的路径部分,如'/usr/local/bin'。

例如:

import os

# 获取目录名
print(os.path.dirname('/usr/local/bin/python'))  # /usr/local/bin

2.1.2 检查文件/目录是否存在

  • os.path.exists(path): 如果path存在,返回True,否则返回False。
import os

# 检查文件是否存在
print(os.path.exists('/usr/local/bin/python'))  # True

# 检查目录是否存在
print(os.path.exists('/usr/local/bin/'))  # True

2.1.3 目录遍历

  • os.path.join(path1[, path2[, ...]]): 将多个路径组合后返回。其中,第一个绝对路径之前的参数将被忽略。空参数将被忽略。如果最后一个参数不为空,则结果里面也会以该参数为结尾。
  • os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]): 生成目录树下所有的文件名和目录名。参数top表示根目录,topdown表示是否从根目录开始遍历,onerror表示出现异常时处理方式,followlinks表示是否跟随符号链接。该函数返回一个迭代器,可以使用for语句遍历该迭代器。

例如:

import os

# 遍历目录下所有文件和目录
for root, dirs, files in os.walk('/usr'):
    print(root)  # 当前目录的路径
    print(dirs)  # 当前目录下的所有目录名
    print(files)  # 当前目录下的所有文件名

2.2 文件和目录操作

下面是一些常用的文件和目录操作相关的函数:

2.2.1 创建目录

可以使用以下函数创建目录:

  • os.mkdir(path[, mode]): 创建单级目录。如果该目录已经存在则抛出异常。
  • os.makedirs(path[, mode]): 创建多级目录。如果该目录已经存在则抛出异常。

例如:

import os

# 创建单级目录
os.mkdir('/usr/local/tmp')

# 创建多级目录
os.makedirs('/usr/local/tmp/1')

2.2.2 删除目录

可以使用以下函数删除目录:

  • os.rmdir(path): 删除单级空目录。如果目录非空,则抛出异常。
  • os.removedirs(path): 删除多级空目录。如果目录非空,则抛出异常。

例如:

import os

# 删除单级空目录
os.rmdir('/usr/local/tmp/1')

# 删除多级空目录
os.removedirs('/usr/local/tmp')

2.2.3 创建文件

可以使用以下函数创建文件:

  • open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True): 打开文件,并返回文件对象。file为文件名,mode用于打开文件的模式,各模式如下:
模式 说明
'r' 读取(默认)
'w' 写入,文件不存在则创建文件,如果文件已经存在,先清空文件内容再写入
'x' 排它性创建,如果文件已经存在则抛出异常
'a' 追加写入,如果文件不存在则创建文件
'b' 二进制模式
't' 文本模式(默认)
'+' 读写模式

例如:

# 创建文件,并写入内容
with open('test.txt', mode='w') as f:
    f.write('Hello World\n')

2.2.4 删除文件

可以使用以下函数删除文件:

  • os.remove(file): 删除文件。

例如:

import os

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

3. 示例

来看一个实际的例子,读取某个目录下的所有文件:

import os

# 遍历目录下所有文件
def list_files(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            filepath = os.path.join(root, file)
            print(filepath)

list_files('/usr/local')

输出结果:

/usr/local/bin/python3
/usr/local/bin/python3-config
/usr/local/bin/python3.8
/usr/local/bin/python3.8-config
/usr/local/bin/python3.8-coverage
/usr/local/bin/python3.8-dbg
/usr/local/bin/python3.8-gdb.py
/usr/local/bin/python3.8-tk
...

再来一个实际的例子,遍历指定目录下的所有子目录:

import os

# 遍历指定目录下的所有子目录
def list_dirs(path):
    for root, dirs, files in os.walk(path):
        for dir in dirs:
            dirpath = os.path.join(root, dir)
            print(dirpath)

list_dirs('/usr/local')

输出结果:

/usr/local/include
/usr/local/share
/usr/local/var
/usr/local/sbin
/usr/local/libexec
/usr/local/lib
/usr/local/etc
/usr/local/Cellar
/usr/local/opt
/usr/local/var/db
/usr/local/var/run

通过该攻略,相信读者对Python中OS文件目录处理有了更具智能化思路的认识,实际应用中可以通过代码示例来更快更好的掌握该模块。

本文链接:http://task.lmcjl.com/news/15152.html

展开阅读全文