Python目录
如果在我们的 Python 程序中有大量文件要处理,我们可以将我们的代码安排在不同的目录中,以使事情更易于管理。
目录或文件夹是文件和子目录的集合。Python 的os 模块为我们提供了许多有用的方法来处理目录(以及文件)。
获取当前目录
我们可以使用模块的getcwd()方法获取当前的工作目录os。
此方法以字符串的形式返回当前工作目录。我们也可以使用该getcwdb()方法将其作为字节对象获取。
>>> import os >>> os.getcwd() ‘C:\Program Files\PyScripter’ >>> os.getcwdb() b’C:\Program Files\PyScripter’
额外的反斜杠意味着一个转义序列。该print()函数将正确呈现它。
>>> print(os.getcwd()) C:\Program Files\PyScripter
更改目录
我们可以使用chdir()方法更改当前工作目录。
我们要更改的新路径必须作为字符串提供给此方法。我们可以使用正斜杠/或反斜杠\来分隔路径元素。
使用反斜杠时使用转义序列更安全。
>>> os.chdir(‘C:\Python33’) >>> print(os.getcwd()) C:\Python33
列出目录和文件
可以使用该listdir()方法检索目录中的所有文件和子目录。
此方法接受一个路径并返回该路径中的子目录和文件的列表。如果未指定路径,则返回当前工作目录中的子目录和文件列表。
>>> 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()方法创建一个新目录。
此方法接受新目录的路径。如果未指定完整路径,则在当前工作目录中创建新目录。
>>> os.mkdir(‘test’) >>> os.listdir() [‘test’]
重命名目录或文件
该rename()方法可以重命名目录或文件。
为了重命名任何目录或文件,该rename()方法接受两个基本参数:旧名称作为第一个参数,新名称作为第二个参数。
>>> os.listdir() [‘test’] >>> os.rename(‘test’,’new_one’) >>> os.listdir() [‘new_one’]
删除目录或文件
可以使用该remove()方法移除(删除)文件。
同样,该rmdir()方法删除一个空目录。
>>> os.listdir() [‘new_one’, ‘old.txt’] >>> os.remove(‘old.txt’) >>> os.listdir() [‘new_one’] >>> os.rmdir(‘new_one’) >>> os.listdir() []
注意:该rmdir()方法只能删除空目录。
为了删除一个非空目录,我们可以使用模块rmtree()内部的方法shutil。
>>> 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() []