原文: https://www.programiz.com/python-programming/directory

在本教程中,您将学习 Python 中的文件和目录管理,即创建目录,重命名,列出所有目录并使用它们。

Python 目录

如果我们的 Python 程序中要处理大量的文件,我们可以将代码安排在不同的目录中,以使事情更易于管理。

目录或文件夹是文件和子目录的集合。 Python 具有os 模块,该模块为我们提供了许多有用的方法来处理目录(以及文件)。


获取当前目录

我们可以使用os模块的getcwd()方法获得当前的工作目录。

此方法以字符串形式返回当前工作目录。 我们也可以使用getcwdb()方法将其作为字节对象获取。

  1. >>> import os
  2. >>> os.getcwd()
  3. 'C:\\Program Files\\PyScripter'
  4. >>> os.getcwdb()
  5. b'C:\\Program Files\\PyScripter'

多余的反斜杠表示转义序列。print()函数将正确渲染此图像。

  1. >>> print(os.getcwd())
  2. C:\Program Files\PyScripter

变更目录

我们可以使用chdir()方法更改当前工作目录。

我们要更改为的新路径必须作为字符串提供给此方法。 我们可以使用正斜杠/或反斜杠\来分隔路径元素。

使用反斜杠时,使用转义序列更安全。

  1. >>> os.chdir('C:\\Python33')
  2. >>> print(os.getcwd())
  3. C:\Python33

列出目录和文件

可以使用listdir()方法检索目录内的所有文件和子目录。

此方法采用一个路径,并返回该路径中的子目录和文件的列表。 如果未指定路径,它将返回当前工作目录中的子目录和文件列表。

  1. >>> print(os.getcwd())
  2. C:\Python33
  3. >>> os.listdir()
  4. ['DLLs',
  5. 'Doc',
  6. 'include',
  7. 'Lib',
  8. 'libs',
  9. 'LICENSE.txt',
  10. 'NEWS.txt',
  11. 'python.exe',
  12. 'pythonw.exe',
  13. 'README.txt',
  14. 'Scripts',
  15. 'tcl',
  16. 'Tools']
  17. >>> os.listdir('G:\\')
  18. ['$RECYCLE.BIN',
  19. 'Movies',
  20. 'Music',
  21. 'Photos',
  22. 'Series',
  23. 'System Volume Information']

创建新目录

我们可以使用mkdir()方法创建一个新目录。

此方法采用新目录的路径。 如果未指定完整路径,则会在当前工作目录中创建新目录。

  1. >>> os.mkdir('test')
  2. >>> os.listdir()
  3. ['test']

重命名目录或文件

rename()方法可以重命名目录或文件。

为了重命名任何目录或文件,rename()方法采用两个基本参数:旧名称作为第一个参数,新名称作为第二个参数。

  1. >>> os.listdir()
  2. ['test']
  3. >>> os.rename('test','new_one')
  4. >>> os.listdir()
  5. ['new_one']

删除目录或文件

可以使用remove()方法删除(删除)文件。

同样,rmdir()方法将删除一个空目录。

  1. >>> os.listdir()
  2. ['new_one', 'old.txt']
  3. >>> os.remove('old.txt')
  4. >>> os.listdir()
  5. ['new_one']
  6. >>> os.rmdir('new_one')
  7. >>> os.listdir()
  8. []

注意rmdir()方法只能删除空目录。

为了删除非空目录,我们可以在shutil模块内使用rmtree()方法。

  1. >>> os.listdir()
  2. ['test']
  3. >>> os.rmdir('test')
  4. Traceback (most recent call last):
  5. ...
  6. OSError: [WinError 145] The directory is not empty: 'test'
  7. >>> import shutil
  8. >>> shutil.rmtree('test')
  9. >>> os.listdir()
  10. []