Bootstrap

python之获取目录、路径判断、创建、拼接

一、使用模块

import os 

二、方法介绍

__file__ 是 Python 中的一个内置变量,它表示当前脚本文件的路径。通过 os 模块对路径进行处理,可以找到项目的根路径。这种方法适用于脚本在项目内运行的情况。

os.path.abspath(__file__) 获取当前文件的绝对路径,结果中包含该文件名

os.path.dirname(__file__) 获取当前文件目录,结果中不包含该文件名,路径符为/,跟linux和网络地址路径一致

os.path.dirname(os.path.dirname(__file__)) 获取当前文件上级目录,路径符为/,跟linux和网络地址路径一致

os.path.dirname(os.path.dirname(os.path.dirname(__file__))) 获取当前文件上上级目录,路径符为/,跟linux

和网络地址路径一致;以此类推,使用更多个os.path.dirname,可以获取更多个上级目录

os.getcwd() #获取当前目录,路径符为\,跟windows系统一致

os.path.dirname(os.getcwd()) #获取当前文件上级目录,路径符为\,跟windows系统一致

os.path.dirname(os.path.dirname(os.getcwd())) #获取当前文件上上级目录,路径符为\,跟windows系统一致

os.path.join(当前目录,xxx) 文件路径拼接 如os.path.join(os.getcwd(), r’conf/config.txt’) ,文件路径拼接也可以使用连接操作符+

os.path.exists(path) 判断路径下是否存在(括号内是文件路径),存在返回True,不存在返回FALSE

os.makedirs(path) 创建路径,可以一次性创建多级目录,即使中间目录不存在也能正常的创建

在获取当前目录时,os.path.dirname(__file__) os.getcwd() 区别为:

os.getcwd()的路径符为\,跟windows系统一致

os.path.dirname(__file__) 的路径符为/,跟linux和网络地址路径一致

但是当获取上级或者上上级等目录时,如果为:os.path.dirname(os.getcwd()),则路径符为\,跟windows系统一致

如果为os.path.dirname(os.path.dirname(__file__)),则路径符为/,跟windows系统一致

如下:

import os

d1 = os.getcwd()
d2 = os.path.dirname(os.getcwd())
d3 = os.path.dirname(__file__)
d4 = os.path.dirname(os.path.dirname(__file__))
print(d1)
print(d2)
print(d3)
print(d4)

打印结果:

D:\Document\Workspace\pywokrspace\test1
D:\Document\Workspace\pywokrspace
D:/Document/Workspace/pywokrspace/test1
D:/Document/Workspace/pywokrspace

sys.path.append() #当我们导入一个模块时:import xxx,默认情况下python解析器会搜索当前目录、已安装的内置模块和第三方模块,而对于用到的模块和自己写的脚本不在同一个目录下,在脚本开头加sys.path.append(‘xxx’),将其添加到搜索目录中;然后再import对应的模块
eg.

import sys
sys.path.append("C:\python\Lib\site-packages")
from Crypto import Random
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64

三、使用.表示目录路径

使用.表示当前目录 ..表示上一级目录

如下:test1.txt处于pythonStudy目录下,与demo81.py同目录,test2.txt处于pythonStudy的上一级目录pywokrspace下,分别以相对路径在test1.txt、test2.txt文件中写入数据;

在这里插入图片描述

;