unix查找的字符串包含特殊字符_python3从零学习-5.4.7、Unix风格路径名模式扩展glob...
源代碼: Lib/glob.py
glob 模塊可根據 Unix 終端所用規則找出所有匹配特定模式的路徑名,但會按不確定的順序返回結果。 波浪號擴展不會生效,但 *, ? 以及表示為 [] 的字符范圍將被正確地匹配。 這是通過配合使用 os.scandir() 和 fnmatch.fnmatch() 函數來實現的,而不是通過實際發起調用子終端。 請注意不同于 fnmatch.fnmatch(),glob 會將以點號 (.) 開頭的文件名作為特殊情況來處理。 (對于波浪號和終端變量擴展,請使用 os.path.expanduser() 和 os.path.expandvars()。)
對于字面值匹配,請將原字符用方括號括起來。 例如,'[?]' 將匹配字符 '?'。
- glob.glob(pathname, *, recursive=False)
返回匹配 pathname 的可能為空的路徑名列表,路徑名必須為包含一個路徑描述的字符串。 pathname 可以是絕對路徑 (如 /usr/src/Python-1.5/Makefile) 或相對路徑 (如 ../../Tools/*/*.gif),并且可包含 shell 風格的通配符。 無效的符號鏈接可以包含在結果中 (與在 shell 中一樣)。
If recursive is true, the pattern “**” will match any files and zero or more directories and subdirectories. If the pattern is followed by an os.sep, only directories and subdirectories match.
注解
在一個較大的目錄樹中使用 “**” 模式可能會消耗非常多的時間。
在 3.5 版更改: 支持使用 “**” 的遞歸 glob.
- glob.iglob(pathname, *, recursive=False)
返回一個 iterator,它會產生與 glob() 相同的結果,但不會實際地同時保存它們。
- glob.escape(pathname)
轉義所有特殊字符 ('?', '*' 和 '[')。 這適用于當你想要匹配可能帶有特殊字符的任意字符串字面值的情況。 在 drive/UNC 共享點中的特殊字符不會被轉義,例如在 Windows 上 escape('//?/c:/Quo vadis?.txt') 將返回 '//?/c:/Quo vadis[?].txt'。
3.4 新版功能.
例如,考慮一個包含以下內容的目錄:文件 1.gif, 2.txt, card.gif 以及一個子目錄 sub 其中只包含一個文件 3.txt. glob() 將產生如下結果。 請注意路徑的任何開頭部分都將被保留。
>>> import glob >>> glob.glob('./[0-9].*') ['./1.gif', './2.txt'] >>> glob.glob('*.gif') ['1.gif', 'card.gif'] >>> glob.glob('?.gif') ['1.gif'] >>> glob.glob('**/*.txt', recursive=True) ['2.txt', 'sub/3.txt'] >>> glob.glob('./**/', recursive=True) ['./', './sub/']如果目錄包含以 . 打頭的文件,它們默認將不會被匹配。 例如,考慮一個包含 card.gif 和 .card.gif 的目錄:
>>> import glob >>> glob.glob('*.gif') ['card.gif'] >>> glob.glob('.c*') ['.card.gif']總結
以上是生活随笔為你收集整理的unix查找的字符串包含特殊字符_python3从零学习-5.4.7、Unix风格路径名模式扩展glob...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 安装mysql_docke
- 下一篇: 32岁学python 人工智能_pyth