使用glob获取文件夹位置和文件路径
你好,我正在我的视图中搜索编译过的 .opt.php 文件。
目前我在做的事情是这样的:
for x in glob.glob(PATH_VIEWS + '*.opt.php'):
# Get file names
segment1 = x.split('/')
filename = segment1[-1]
realname = filename.split('.opt.php')
appfolder = segment1[-4]
folder = segment1[-2]
''' ../../../views/users/index.opt.php
['..', '..', '..', 'views', 'users', 'index.opt.php']
index.opt.php
['index', '']
'''
有没有更好的方法来做到这一点?我想获取文件名,比如 index.opt.php
,以及这些文件所在的文件夹,在这个例子中,文件夹是 ../../../views/users
的 users。
1 个回答
2
如果你想获取文件的基本名称和目录名称,可以使用 os.path.split() 这个方法。
http://docs.python.org/library/os.path.html#os.path.split
顺便提一下:glob() 这个方法只有在目录深度固定的情况下才能使用。如果你想要类似于 Unix 系统中的 "find" 命令(也就是递归查找目录),可以使用 os.walk()。
import os, glob
magic='.log'
for file in glob.glob(os.path.join(mydir, '*%s' % magic)):
dirname, filename = os.path.split(file)
base=filename[:-len(magic)] # if you use this very often, it is faster to use a variable "len_magic"
print dirname, base