路径中使用斜杠/和反斜杠\的区别
事实上是只有windows系统中用\,其他的项目中,linux中都使用/
Unix使用斜杆/ 作为路径分隔符,而web应用最先使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。
Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,所以采用 反斜杠\ 作为路径分隔符。所以目前windows系统上的文件导航栏都是用 反斜杠\ 作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用的很少,斜杆和反斜杠在大多数情况下可以互换,没有影响。
OS模块
OS模块就是为了解决同一套代码,在不同系统上都能运行,解决文件路径的问题
获取当前脚本路径
print(__file__) # __file__是当前脚本名称,但名称中的路径不能适合多平台,在win系统上适用,但在Linux系统可能就不适合了,所以要使用os模块
print(os.path.abspath(__file__)) # 获取当前脚本名称,脚本在不同的平台上运行时,会自动转换成对应系统的路径
D:/Pycharm_workspace/day23_代码分层/setting.py
D:\Pycharm_workspace\day23_代码分层\setting.py
获取当前脚本绝对路径(包括脚本名称)
os.path.abspath(__file__)
os.path.dirname获取当前脚本所在目录
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)) )
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)) ))
可以一层层套上去
判断文件夹是否存在,创建文件夹
判断当前脚本所在目录是否存在某个文件夹,如果不存在就创建
if not os.path.exists('reports'):
os.makedirs('reports')
上面代码中表示,当前脚本所在目录如果没有reports文件夹就创建,如果不是在当前脚本所在目录,exists和makedirs就要传要判断文件夹的绝对路径
report_dir=os.path.join(BASE_DIR, 'reports')
if not os.path.exists(report_dir):
os.makedirs(report_dir)
网友评论