使用glob获取文件夹位置和文件路径

0 投票
1 回答
763 浏览
提问于 2025-04-17 08:47

你好,我正在我的视图中搜索编译过的 .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

撰写回答