Python中的 if __name__ ==‘main‘
你编写的程序迟早需要创建目录以便在其中存储数据。 os 和 pathlib 包含了创建目录的函数。我们将会考虑如下方法:
| 方法 | 描述 | | -------------------- | -------------------------- | | os.mkdir() | 创建单个子目录 | | os.makedirs() | 创建多个目录,包括中间目录 | | Pathlib.Path.mkdir() | 创建单个或多个目录 |
创建单个目录
import os
os.mkdir("example_directory")
如果该目录已经存在,os.mkdir() 将抛出 FileExistsError 异常。或者,你也可以使用 pathlib 来创建目录:
from pathlib import Pathp = Path('example_directory')
p.mkdir()
如果路径已经存在,mkdir() 会抛出 FileExistsError 异常:
FileExistsError: [Errno 17] File exists: 'example_directory'
为了避免像这样的错误抛出, 当发生错误时捕获错误并让你的用户知道:
from pathlib import Pathp = Path('example_directory')
try:p.mkdir()
except FileExistsError as e:print(e)
或者,你可以给 .mkdir() 传入 exist_ok=True 参数来忽略 FileExistsError 异常:
from pathlib import Pathp = Path('example_directory')
p.mkdir(exist_ok=True)
如果目录已存在,则不会引起错误。
创建多个目录
os.makedirs() 和 os.mkdir() 类似。两者之间的区别在于,os.makedirs() 不仅可以创建单独的目录,还可以递归的创建目录树。换句话说,它可以创建任何必要的中间文件夹,来确保存在完整的路径。
os.makedirs() 和在bash中运行 mkdir -p 类似。例如,要创建一组目录像 2018/10/05,你可以像下面那样操作:
import osos.makedirs('2018/10/05', mode=0o770)
上述代码创建了 2018/10/05 的目录结构并为所有者和组用户提供读、写和执行权限。默认的模式为 0o777 ,增加了其他用户组的权限。有关文件权限以及模式的应用方式的更多详细信息,请参考 文档