1. 程式人生 > 其它 >獲取檔案下的資料夾和檔案—— os.listdir 與 glob.glob

獲取檔案下的資料夾和檔案—— os.listdir 與 glob.glob

os.listdir 與 glob.glob

os.listdir : 獲取資料夾下,檔案及資料夾名稱

glob.glob : 獲取資料夾下,符合萬用字元的檔案及資料夾的路徑

注意:不要在末尾加 \,資料夾引數就到資料夾,不用加\,檔案萬用字元,也不用加 \

In [18]: e = os.listdir(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib')

In [19]: e
Out[19]: ['example_plugin.py_', 'readme.md', 'save_image_local.py', '__pycache__']

In [20]: f = glob.glob(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib\*.py')

In [21]: f
Out[21]: ['C:\\Users\\WangLin\\Desktop\\EL_gitee\\el_app\\src\\plugins_contrib\\save_image_local.py']

In [22]: g = glob.glob(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib')

In [23]: g
Out[23]: ['C:\\Users\\WangLin\\Desktop\\EL_gitee\\el_app\\src\\plugins_contrib']

In [24]: g = glob.glob(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib\')
  File "<ipython-input-24-98367c42a61e>", line 1
    g = glob.glob(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib\')
                                                                                   ^
SyntaxError: EOL while scanning string literal


In [25]: g = glob.glob(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib\*')

In [26]: g
Out[26]:
['C:\\Users\\WangLin\\Desktop\\EL_gitee\\el_app\\src\\plugins_contrib\\example_plugin.py_',
 'C:\\Users\\WangLin\\Desktop\\EL_gitee\\el_app\\src\\plugins_contrib\\readme.md',
 'C:\\Users\\WangLin\\Desktop\\EL_gitee\\el_app\\src\\plugins_contrib\\save_image_local.py',
 'C:\\Users\\WangLin\\Desktop\\EL_gitee\\el_app\\src\\plugins_contrib\\__pycache__']

In [27]: e = os.listdir(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib\')
  File "<ipython-input-27-abaf4f380364>", line 1
    e = os.listdir(r'C:\Users\WangLin\Desktop\EL_gitee\el_app\src\plugins_contrib\')
                                                                                    ^
SyntaxError: EOL while scanning string literal
# glob.iglob() 函式
# 獲取一個可遍歷物件,使用它可以逐個獲取匹配的檔案路徑名。

# 與glob.glob()的區別是:glob.glob()可同時獲取所有的匹配路徑,而glob.iglob()一次只能獲取一個匹配路徑。

import glob
# 父目錄中的.py檔案
f = glob.iglob(r'../*.py')
print(f)      # generator object iglob as 0x00B9FF80
for py in f:
    print(py)