原创,如有雷同,纯属巧合
自学pythoning,学到‘文件’时搞了个多层目录,觉得用os.chdir('..[/..]')返回上级很麻烦,有时候为了防止数错还必须先getcwd,于是就想了一个返回至指定目录的函数dirbac(a)(directory back)
def dirbac(a):
import os #已经import了的话就不用
x=len(a)
while os.getcwd()[-x:]!=a:
os.chdir('..')
使用示例(def了一个函数来创建多层目录并跳转至最后一层)
def trymkchdircir(*a):
import os
x=len(a)
for i in range(x):
try:
os.mkdir(a[i])
except FileExistsError:
pass
os.chdir(a[i])
trymkchdircir('tst1','tst2','tst3','tst4','tst5','tst6','tst7')
现在分层创建了tst1~7七级目录,当前目录为tst7。然后输入
dirbac('tst1')
当前目录就会跳到tst1
而如果要从tst7跳到最高目录,或者说最开始的目录,就只需要把参数设为项目名的最后一个字词或词组。比如有一个python learning project项目,就只需要这样:
dirbac('project')
之所以设置成末尾匹配,是因为一个完整的目录名可能是这样:
C:\users\GFRY\source\repos\python selflearning project\python_selflearning_project\tst1\tst2
如果从最左侧开始检索,则参数会有一长串,上面的dirbac('project')就得变成dirbac('C:\users\...python_learning_project')
希望有所帮助
OVER