Python glob的用法 January 16, 2018 glob — Unix style pathname pattern expansion > The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, although results are returned in arbitrary order. No tilde expansion is done, but *, ?, and character ranges expressed with [] will be correctly matched. This is done by using the os.listdir() and fnmatch.fnmatch() functions in concert, and not by actually invoking a subshell. Note that unlike fnmatch.fnmatch(), glob treats filenames beginning with a dot (.) as special cases. (For tilde and shell variable expansion, use os.path.expanduser() and os.path.expandvars().) > For a literal match, wrap the meta-characters in brackets. For example, '[?]' matches the character '?'. > glob.glob(pathname) Return a possibly-empty list of path names that match pathname, which must be a string containing a path specification. pathname can be either absolute (like /usr/src/Python-1.5/Makefile) or relative (like ../../Tools/*/*.gif), and can contain shell-style wildcards. Broken symlinks are included in the results (as in the shell). > glob.iglob(pathname) Return an iterator which yields the same values as glob() without actually storing them all simultaneously. > New in version 2.5. > For example, consider a directory containing only the following files: 1.gif, 2.txt, and card.gif. glob() will produce the following results. Notice how any leading components of the path are preserved. ```python >>> import glob >>> glob.glob('./[0-9].*') ['./1.gif', './2.txt'] >>> glob.glob('*.gif') ['1.gif', 'card.gif'] >>> glob.glob('?.gif') ['1.gif'] ``` > If the directory contains files starting with . they won’t be matched by default. For example, consider a directory containing card.gif and .card.gif: ```python >>> import glob >>> glob.glob('*.gif') ['card.gif'] >>> glob.glob('.c*') ['.card.gif'] ``` 在一个Laravel工程下做试验: ```python >>> glob('./') ['./'] >>> glob('*') ['app', 'artisan', 'bootstrap', 'cmd.txt', 'composer', 'composer.json', 'composer.lock', 'config', 'database', 'doc', 'node_modules', 'package.json', 'phpunit.xml', 'public', 'resources', 'routes', 'server.php', 'storage', 'tests', 'vendor', 'webpack.mix.js', 'yarn.lock'] >>> glob('/*') ['/$RECYCLE.BIN', '/1.jpg', '/1.png', '/360Rec', '/BaiduNetdiskDownload', '/btdown', '/build', '/caffe', '/DL', '/feelncut.tpu', '/git', '/img', '/install pack', '/jeeworkspace', '/opencv', '/paper', '/photo', '/php', '/Pillow-4.3.0-cp35-cp35m-win_amd64.whl', '/python', '/scipy-1.0.0rc2-cp35-cp35m-win_amd64.whl', '/sipl', '/some doc', '/SRCNN-master', '/svn', '/System Volume Information', '/vs', '/vs workspace', '/wozhendehaoaini', '/wozhendehaoaini.tpu', '/党支部', '/周报告', '/微信文件', '/研究生课程'] >>> glob('./*') ['.\\app', '.\\artisan', '.\\bootstrap', '.\\cmd.txt', '.\\composer', '.\\composer.json', '.\\composer.lock', '.\\config', '.\\database', '.\\doc', '.\\node_modules', '.\\package.json', '.\\phpunit.xml', '.\\public', '.\\resources', '.\\routes', '.\\server.php', '.\\storage', '.\\tests', '.\\vendor', '.\\webpack.mix.js', '.\\yarn.lock'] >>> glob('./*/*.php') ['.\\app\\Book.php', '.\\app\\Chapter.php', '.\\app\\Credit_log.php', '.\\app\\Group.php', '.\\app\\Listening.php', '.\\app\\Sentence.php', '.\\app\\Task.php', '.\\app\\Task_log.php', '.\\app\\User.php', '.\\app\\Word.php', '.\\bootstrap\\app.php', '.\\config\\admin.php', '.\\config\\app.php', '.\\config\\auth.php', '.\\config\\broadcasting.php', '.\\config\\cache.php', '.\\config\\database.php', '.\\config\\excel.php', '.\\config\\filesystems.php', '.\\config\\mail.php', '.\\config\\queue.php', '.\\config\\services.php', '.\\config\\session.php', '.\\config\\view.php', '.\\public\\index.php', '.\\routes\\api.php', '.\\routes\\channels.php', '.\\routes\\console.php', '.\\routes\\web.php', '.\\tests\\CreatesApplication.php', '.\\tests\\TestCase.php', '.\\vendor\\autoload.php'] >>> glob('./*.txt') ['.\\cmd.txt'] >>> glob('*.txt') ['cmd.txt'] ``` 注意最后两个。