Python 系统编程:如何使用 os 模块访问文件系统 Python 是一种高级语言,通常用于编写 Web 应用程序、数据分析和人工智能等领域。然而 Python 还可以用于系统编程,例如管理文件系统、网络和内存等底层操作。 在本文中,我们将介绍如何使用 Python 的 os 模块来访问文件系统。os 模块是 Python 内置的系统编程模块之一,它提供了许多有用的函数,可以帮助我们在 Python 编程中轻松访问底层文件系统。 1. os 模块概述 os 模块提供了许多函数,可以帮助我们执行各种底层操作,例如访问文件系统、管理进程和环境变量等。下面是一些常用的函数: - os.getcwd():获取当前工作目录。 - os.listdir(path):列出指定目录下的所有文件和子目录。 - os.remove(path):删除指定文件。 - os.rmdir(path):删除指定目录。 - os.mkdir(path):创建指定目录。 - os.path.exists(path):检查指定路径是否存在。 - os.path.isfile(path):检查指定路径是否是文件。 - os.path.isdir(path):检查指定路径是否是目录。 - os.path.basename(path):获取指定路径的文件名。 - os.path.dirname(path):获取指定路径的目录名。 - ... 2. 访问文件系统 使用 os 模块访问文件系统是非常容易的。我们可以使用 os.listdir() 函数来列出指定目录下的所有文件和子目录。例如,下面的代码将列出当前目录下的所有文件和子目录: ```python import os # 获取当前工作目录 cwd = os.getcwd() # 列出当前目录下的所有文件和子目录 files = os.listdir(cwd) # 打印所有文件和子目录 for file in files: print(file) ``` 我们还可以使用 os.path 模块来检查指定路径是否存在、是文件还是目录等。例如,下面的代码将检查给定的路径是否存在,并判断它是文件还是目录: ```python import os # 指定路径 path = '/Users/username/Downloads' # 检查路径是否存在 if os.path.exists(path): # 如果是目录,打印目录下的所有文件名 if os.path.isdir(path): files = os.listdir(path) for file in files: print(file) # 如果是文件,打印文件名和文件大小 elif os.path.isfile(path): size = os.path.getsize(path) name = os.path.basename(path) print(f'文件名:{name}, 大小:{size} bytes') else: print(f'路径 {path} 不存在') ``` 3. 文件操作 os 模块还提供了一些函数,可以帮助我们在 Python 程序中读写文件。例如,我们可以使用 os.remove() 函数删除指定文件,使用 os.rename() 函数将文件重命名,使用 os.mkdir() 函数创建新目录等。 下面的代码演示了如何使用 os 模块删除指定文件: ```python import os # 指定要删除的文件名 filename = 'test.txt' # 如果文件存在,删除它 if os.path.isfile(filename): os.remove(filename) print(f'文件 {filename} 已删除') else: print(f'文件 {filename} 不存在') ``` 除了删除文件,我们还可以使用 os 模块来读写文件。例如,下面的代码演示了如何使用 os 模块读取文件内容: ```python import os # 指定要读取的文件名 filename = 'test.txt' # 如果文件存在,读取它的内容 if os.path.isfile(filename): with open(filename, 'r') as f: content = f.read() print(f'文件 {filename} 的内容是:{content}') else: print(f'文件 {filename} 不存在') ``` 4. 总结 在本文中,我们介绍了如何使用 Python 的 os 模块来访问文件系统。我们学习了如何列出文件和子目录、检查路径是否存在、删除文件、读取文件内容等。 os 模块是 Python 内置的一个很有用的系统编程模块。在实际编程中,我们可以使用它来执行各种底层操作,从而实现更加复杂和强大的功能。