一.os.path()
在 Python 中,os.path
模块提供了许多用于处理文件和目录路径的函数,这些函数能够跨操作系统平台运行,因为它们能够自动适应不同的路径分隔符和规范化。
下面是一些常用的 os.path
模块的函数及其用法:
-
os.path.join()
:将多个路径组合成一个路径- 用于将多个路径组合成一个路径。
- 示例:
import os path = os.path.join('dir1', 'dir2', 'file.txt') print(path) # 输出结果根据操作系统不同而有所不同
-
os.path.exists()
:检查路径是否存在- 用于检查路径是否存在。
- 示例:
import os exists = os.path.exists('/path/to/some/file.txt') print(exists) # 输出 True 或 False
-
os.path.isfile()
和os.path.isdir()
:检查路径是否为文件或目录- 分别用于检查路径是否为文件或目录。
- 示例:
import os is_file = os.path.isfile('/path/to/some/file.txt') is_dir = os.path.isdir('/path/to/some/directory') print(is_file, is_dir) # 输出 True 或 False
-
os.path.abspath()
:绝对路径- 返回绝对路径。
- 示例:
import os abs_path = os.path.abspath('relative/path/to/somefile.txt') print(abs_path)
-
os.path.basename()
和os.path.dirname()
:最后一个组件(文件名或目录名)和路径的目录部分- 分别返回路径的最后一个组件(文件名或目录名)和路径的目录部分。
- 示例:
import os filename = os.path.basename('/path/to/some/file.txt') dirname = os.path.dirname('/path/to/some/file.txt') print(filename, dirname)
-
os.path.split()
:分割成目录和文件名- 将路径分割成目录和文件名。
- 示例:
import os directory, filename = os.path.split('/path/to/some/file.txt') print(directory, filename)
7. os.path.splitext()
: 分割成文件名和文件后缀
1. 函数将文件路径分割成文件名和文件后缀(包括点号)
2.示例:
import os
file = './tmp1.py'
f,d = os.path.splitext(file)
print(os.path.abspath(f),d)
8. os.path.dirname()
: 返回指定路径的目录部分
1. 接收一个路径字符串作为参数,并返回该路径的目录部分。简而言之,它会去掉路径的最后一部分(通常是文件名或目录名),返回剩下的部分。
2.示例:
# 获取当前脚本所在的路径
current_dir = os.path.dirname(__file__)
# 继续,获取当前路径的上一层路径
parent_dir = os.path.dirname(current_dir)
二.os.walk()
os.walk()用于在Python中遍历文件夹树。它返回一个生成器,该生成器在每次迭代时返回一个包含三个元素的元组:(当前文件夹的路径,文件夹中的子文件夹的列表,文件夹中的文件的列表)
。这个函数对于递归地操作文件系统,如查找、文件重命名或移动文件特别有用。
下面是一个 os.walk()
的使用例子:
import os
for root, dirs, files in os.walk('..', topdown=True):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
参数说明:
root
:当前正在遍历的文件夹的路径。dirs
:当前root
文件夹中所有的子文件夹组成的列表。files
:当前root
文件夹中所有的非目录文件组成的列表。
选项参数说明:
topdown
(可选):设置为True
(默认)时,walk
会以自顶向下的方式遍历子文件夹;如果设置为False
,则会自底向上遍历。onerror
(可选):一个为一个产生器(或者一个函数),当一个错误发生时,它可以被调用;默认 None。followlinks
(可选):设置为True
时,os.walk()
会在遍历到符号链接时继续跟踪,直到遇到一个非符号链接的目录;默认 False。
请注意,os.walk()
不保证遍历的顺序。如果需要按特定的顺序遍历文件系统,应当在遍历时手动排序 dirs
和 files
列表。
使用 os.walk()
时需要注意,由于它是自顶向下的,它会对每个目录访问多次,一旦访问了其子文件夹,同时它也不会跳过任何子目录,因此不适用于大文件夹的遍历。
os.walk()
是一个非常有用的功能,使得在Python中对文件系统进行复杂的操作成为可能。
三.os.listdir()
在 Python 中,os.listdir()
函数用于返回指定路径下的所有文件和目录名的列表。它是 os
模块中的一个函数,可以很方便地用来列出指定目录中的内容。
下面是 os.listdir()
函数的基本用法示例:
import os
# 列出当前工作目录下的所有文件和目录
files_and_dirs = os.listdir('.')
print(files_and_dirs)
# 列出指定路径下的所有文件和目录
path = '/path/to/directory'
files_and_dirs = os.listdir(path)
print(files_and_dirs)
在上面的示例中:
os.listdir('.')
列出当前工作目录下的所有文件和目录。os.listdir('/path/to/directory')
则列出指定路径/path/to/directory
下的所有文件和目录。
需要注意的是,os.listdir()
返回的列表中包含了所有文件和子目录的名称,不包括 .
和 ..
,即当前目录和上级目录的特殊目录项。
如果你需要进一步处理返回的文件和目录列表,可以使用循环或其他列表操作方法来处理每个条目。