ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Python 目录和文件管理 > 原文: [https://www.programiz.com/python-programming/directory](https://www.programiz.com/python-programming/directory) #### 在本教程中,您将学习 Python 中的文件和目录管理,即创建目录,重命名,列出所有目录并使用它们。 ## Python 目录 如果我们的 Python 程序中要处理大量的[文件](/python-programming/file-operation),我们可以将代码安排在不同的目录中,以使事情更易于管理。 目录或文件夹是文件和子目录的集合。 Python 具有`os` [模块](/python-programming/modules),该模块为我们提供了许多有用的方法来处理目录(以及文件)。 * * * ## 获取当前目录 我们可以使用`os`模块的`getcwd()`方法获得当前的工作目录。 此方法以字符串形式返回当前工作目录。 我们也可以使用`getcwdb()`方法将其作为字节对象获取。 ```py >>> import os >>> os.getcwd() 'C:\\Program Files\\PyScripter' >>> os.getcwdb() b'C:\\Program Files\\PyScripter' ``` 多余的反斜杠表示转义序列。`print()`函数将正确渲染此图像。 ```py >>> print(os.getcwd()) C:\Program Files\PyScripter ``` * * * ## 变更目录 我们可以使用`chdir()`方法更改当前工作目录。 我们要更改为的新路径必须作为字符串提供给此方法。 我们可以使用正斜杠`/`或反斜杠`\`来分隔路径元素。 使用反斜杠时,使用转义序列更安全。 ```py >>> os.chdir('C:\\Python33') >>> print(os.getcwd()) C:\Python33 ``` * * * ## 列出目录和文件 可以使用`listdir()`方法检索目录内的所有文件和子目录。 此方法采用一个路径,并返回该路径中的子目录和文件的列表。 如果未指定路径,它将返回当前工作目录中的子目录和文件列表。 ```py >>> print(os.getcwd()) C:\Python33 >>> os.listdir() ['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools'] >>> os.listdir('G:\\') ['$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information'] ``` * * * ## 创建新目录 我们可以使用`mkdir()`方法创建一个新目录。 此方法采用新目录的路径。 如果未指定完整路径,则会在当前工作目录中创建新目录。 ```py >>> os.mkdir('test') >>> os.listdir() ['test'] ``` * * * ## 重命名目录或文件 `rename()`方法可以重命名目录或文件。 为了重命名任何目录或文件,`rename()`方法采用两个基本参数:旧名称作为第一个参数,新名称作为第二个参数。 ```py >>> os.listdir() ['test'] >>> os.rename('test','new_one') >>> os.listdir() ['new_one'] ``` * * * ## 删除目录或文件 可以使用`remove()`方法删除(删除)文件。 同样,`rmdir()`方法将删除一个空目录。 ```py >>> os.listdir() ['new_one', 'old.txt'] >>> os.remove('old.txt') >>> os.listdir() ['new_one'] >>> os.rmdir('new_one') >>> os.listdir() [] ``` **注意**:`rmdir()`方法只能删除空目录。 为了删除非空目录,我们可以在`shutil`模块内使用`rmtree()`方法。 ```py >>> os.listdir() ['test'] >>> os.rmdir('test') Traceback (most recent call last): ... OSError: [WinError 145] The directory is not empty: 'test' >>> import shutil >>> shutil.rmtree('test') >>> os.listdir() [] ```