上一章Python教程请查看:python3文件IO
在本文中,你将了解Python中的文件和目录管理,即创建一个目录,重命名它,列出所有目录并使用它们。
Python中的目录是什么?如果在Python程序中有大量的文件需要处理,那么可以将代码安排在不同的目录中,使其更易于管理。
目录或文件夹是文件和子目录的集合,Python有os模块,它为我们提供了许多有用的方法来处理目录(以及文件)。
获取当前目录我们可以使用getcwd()方法获得当前的工作目录。
此方法以字符串的形式返回当前工作目录,我们还可以使用getcwdb()方法将其作为bytes对象获取。
>>> 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()方法可以重命名目录或文件。
第一个参数是旧名称,新名称必须作为第二个参数提供。
>>> os.listdir()
['test']
>>> os.rename('test','new_one')
>>> os.listdir()
['new_one']
删除目录或文件可以使用remove()方法删除文件。
【python3目录和文件管理 – Python3教程】类似地,rmdir()方法删除一个空目录。
>>> os.listdir()
['new_one', 'old.txt']
>>> os.remove('old.txt')
>>> os.listdir()
['new_one']
>>> os.rmdir('new_one')
>>> os.listdir()
[]
但是,注意rmdir()方法只能删除空目录。
为了删除非空目录,我们可以在shutil模块中使用rmtree()方法。
>>> 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()
[]
推荐阅读
- python3错误和内置异常 – Python3教程
- python3文件IO – Python3教程
- python3字典dictionary – Python3教程
- python3字符串string – Python3教程
- python3元组tuple – Python3教程
- python3列表list – Python3教程
- Scala中的匿名函数详细介绍
- 算法题(选择k个数组元素,使最大值和最小值之差最小)
- C#逐字字符串字面量– @用法介绍