您的位置:

Python中的os模块:操作文件和目录的利器

在Python开发中,经常需要操作文件和目录。此时,就需要使用Python中的os模块。os模块提供了一系列与操作系统交互的函数,可实现文件和目录的创建、复制、删除、重命名、遍历等功能。本文将从多个方面介绍os模块的使用。

一、获取当前工作目录


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

os.getcwd()函数可以获取当前工作目录。输出结果如下:

当前工作目录:/Users/user_name

二、创建和删除目录

os.mkdir()函数可以创建目录,os.rmdir()函数可以删除目录。


import os
# 创建目录
os.mkdir("testdir")
# 判断目录是否存在
if os.path.exists("testdir"):
    print("testdir目录存在")
# 删除目录
os.rmdir("testdir")
# 判断目录是否存在
if not os.path.exists("testdir"):
    print("testdir目录不存在")

输出结果如下:

testdir目录存在
testdir目录不存在

三、遍历目录

os.walk()函数可以遍历目录及其子目录中的所有文件和子目录。


import os
# 遍历目录
for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

输出结果如下:

./subdir/file1.txt
./subdir/subsubdir/file3.txt
./subdir/subsubdir
./subdir/file2.txt
./subdir
./file4.txt
./file3.txt
./file2.txt
./file1.txt
.

四、文件操作

1. 文件读写

os模块提供了两种读写文件的方式:使用open函数和使用os.fdopen函数。

使用open函数:


import os
# 写文件
with open("file.txt", "w") as f:
    f.write("hello, world!")
# 读文件
with open("file.txt", "r") as f:
    print(f.read())

使用os.fdopen函数:


import os
# 写文件
fd = os.open("file.txt", os.O_WRONLY|os.O_CREAT)
with os.fdopen(fd, "w") as f:
    f.write("hello, world!")
# 读文件
fd = os.open("file.txt", os.O_RDONLY)
with os.fdopen(fd, "r") as f:
    print(f.read())

2. 文件重命名和删除

os.rename()函数可以重命名文件,os.remove()函数可以删除文件。


import os
# 重命名文件
os.rename("file.txt", "new_file.txt")
# 判断文件是否存在
if os.path.exists("new_file.txt"):
    print("new_file.txt文件存在")
# 删除文件
os.remove("new_file.txt")
# 判断文件是否存在
if not os.path.exists("new_file.txt"):
    print("new_file.txt文件不存在")

输出结果如下:

new_file.txt文件存在
new_file.txt文件不存在

五、总结

os模块是Python中非常实用的一个模块,可以实现对文件和目录的操作。本文主要介绍了os模块的多个方面,包括获取当前工作目录、创建和删除目录、遍历目录、文件读写、文件重命名和删除等。在实际开发中,不同的场景需要使用不同的函数来满足需求。