ਪਾਈਥਨ ਵਿੱਚ ਫਾਈਲ ਅਤੇ ਡਾਇਰੈਕਟਰੀ ਨਾਮਾਂ (ਫੋਲਡਰ ਦੇ ਨਾਮ) ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, os ਮੋਡੀਊਲ ਫੰਕਸ਼ਨ os.listdir() ਦੀ ਵਰਤੋਂ ਕਰੋ।
os.listdir(path=’.’)
ਪਾਥ ਦੁਆਰਾ ਨਿਰਧਾਰਿਤ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਐਂਟਰੀ ਨਾਂ ਵਾਲੀ ਸੂਚੀ ਵਾਪਸ ਕਰਦਾ ਹੈ।
os — Miscellaneous operating system interfaces — Python 3.10.0 Documentation
OS ਮੋਡੀਊਲ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਇਸਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਹਾਲਾਂਕਿ, “ਆਯਾਤ” ਦੀ ਲੋੜ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਇੱਥੇ ਦਿੱਤੀ ਗਈ ਹੈ।
- ਫਾਈਲ ਅਤੇ ਡਾਇਰੈਕਟਰੀ ਦੋਵਾਂ ਨਾਮਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰੋ।
- ਸਿਰਫ਼ ਫਾਈਲਾਂ ਦੇ ਨਾਵਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰੋ
- ਸਿਰਫ਼ ਡਾਇਰੈਕਟਰੀ ਦੇ ਨਾਵਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰੋ
ਹੇਠਾਂ ਇੱਕ ਫਾਈਲ (ਡਾਇਰੈਕਟਰੀ) ਬਣਤਰ ਦੀ ਇੱਕ ਉਦਾਹਰਨ ਹੈ।
. └── testdir ├── dir1 ├── dir2 ├── file1 ├── file2.txt └── file3.jpg
os.listdir() ਤੋਂ ਇਲਾਵਾ, ਤੁਸੀਂ ਫਾਈਲ ਅਤੇ ਡਾਇਰੈਕਟਰੀ ਨਾਮਾਂ (ਫੋਲਡਰ ਦੇ ਨਾਮ) ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਗਲੋਬ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ। ਗਲੋਬ ਤੁਹਾਨੂੰ ਵਾਈਲਡਕਾਰਡ (*), ਆਦਿ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸ਼ਰਤਾਂ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਉਪ-ਡਾਇਰੈਕਟਰੀਆਂ ਨੂੰ ਬਾਰ ਬਾਰ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ।
ਪਾਈਥਨ 3.4 ਅਤੇ ਬਾਅਦ ਵਿੱਚ, ਪਾਥਲਿਬ ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਫਾਈਲਾਂ ਅਤੇ ਡਾਇਰੈਕਟਰੀਆਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਵੀ ਸੰਭਵ ਹੈ, ਜੋ ਆਬਜੈਕਟ ਦੇ ਰੂਪ ਵਿੱਚ ਮਾਰਗਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹਨ। ਉਪਰੋਕਤ ਗਲੋਬਸ ਦੀ ਤਰ੍ਹਾਂ, ਇਸਦੀ ਵਰਤੋਂ ਸ਼ਰਤ ਅਤੇ ਵਾਰ-ਵਾਰ ਵੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਫਾਈਲ ਅਤੇ ਡਾਇਰੈਕਟਰੀ ਦੋਵਾਂ ਨਾਮਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰੋ।
ਜੇਕਰ ਤੁਸੀਂ os.listdir() ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਫਾਈਲ ਅਤੇ ਡਾਇਰੈਕਟਰੀ ਦੋਵਾਂ ਨਾਮਾਂ ਦੀ ਸੂਚੀ ਵਾਪਸ ਕਰੇਗਾ।
import os path = "./testdir" files = os.listdir(path) print(type(files)) # <class 'list'> print(files) # ['dir1', 'dir2', 'file1', 'file2.txt', 'file3.jpg']
ਜੋ ਤੁਸੀਂ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ ਉਹ ਮਾਰਗ ਦੀਆਂ ਤਾਰਾਂ ਦੀ ਸੂਚੀ ਹੈ।
ਸਿਰਫ਼ ਫਾਈਲਾਂ ਦੇ ਨਾਵਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰੋ
ਜੇਕਰ ਤੁਸੀਂ ਸਿਰਫ਼ ਫਾਈਲ ਨਾਮਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਪਤਾ ਕਰਨ ਲਈ os.path.isfile() ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ ਕਿ ਕੀ ਪਾਥ ਇੱਕ ਫਾਈਲ ਹੈ। os.path.isfile() ਫੰਕਸ਼ਨ ਦੇ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਸਿਰਫ ਫਾਈਲ ਨਾਮ ਨੂੰ ਪਾਸ ਕਰਨਾ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ, ਇਸ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਅਨੁਸਾਰ ਪੂਰਾ ਮਾਰਗ ਪਾਸ ਕਰੋ।os.path.isfile(os.path.join(path, f))
files = os.listdir(path) files_file = [f for f in files if os.path.isfile(os.path.join(path, f))] print(files_file) # ['file1', 'file2.txt', 'file3.jpg']
ਸਿਰਫ਼ ਡਾਇਰੈਕਟਰੀ ਦੇ ਨਾਵਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰੋ
ਜੇਕਰ ਤੁਸੀਂ ਸਿਰਫ਼ ਡਾਇਰੈਕਟਰੀ ਦੇ ਨਾਮਾਂ ਦੀ ਸੂਚੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ os.path.isdir() ਨੂੰ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਵਰਤੋ।
files = os.listdir(path) files_dir = [f for f in files if os.path.isdir(os.path.join(path, f))] print(files_dir) # ['dir1', 'dir2']