কম্পিউটার

পাইথনে ডিরেক্টরি এবং ফাইলগুলি তালিকাভুক্ত করছেন?


পাইথনে ডিরেক্টরি এবং ফাইল তালিকাভুক্ত করার বিভিন্ন উপায় রয়েছে।

একটি ডিরেক্টরিতে ফাইল তালিকাভুক্ত করা

একটি নির্দিষ্ট পথ থেকে সমস্ত ফাইল বা ডিরেক্টরি পাওয়ার সবচেয়ে সহজ উপায় হল os.listdir() পদ্ধতি ব্যবহার করা৷

import os
for x in os.listdir('.'):
   print(x)

ফলাফল

.pytest_cache
4forces.json
annotation1.py
asyncWrite.txt
attribute_access.py
background_process.py
background_process2.py
BeautifulSoup_script1.py
bottle_exampl1.py
bottole_test1.py
build
built-in_funct.py
callable_objects1.py
cars.csv
classes_instance.py
class_attributes.py
class_attributes1.py
code_gmplot.py
config.py
data1.json
datafile.txt
……

উপরের কোডটি বর্তমান কার্যকারী ডিরেক্টরি থেকে ফাইল এবং ডিরেক্টরিগুলির একটি তালিকা দেখাচ্ছে। আপনি যদি একটি নির্দিষ্ট ডিরেক্টরি থেকে ফাইল এবং ডিরেক্টরিগুলি তালিকাভুক্ত করতে চান, শুধুমাত্র পরম পাথনাম পাস করুন,

import os
for x in os.listdir(r'C:\Python\Python361\selenium'):
   print(x)

ফলাফল

geckodriver.log
test1.py
webdriver

ফলাফল আমাদের ফোল্ডার অনুক্রমের অনুরূপ −

পাইথনে ডিরেক্টরি এবং ফাইলগুলি তালিকাভুক্ত করছেন?

উপরের আউটপুটটি আমাদের আউটপুট ফাইল বা ডিরেক্টরি বা লিঙ্ক ইত্যাদির কোন ইঙ্গিত দিচ্ছে না। আপনি যদি এন্ট্রিটি একটি ফাইল, ডিরেক্টরি ইত্যাদি কিনা তা জানতে চান, আমরা নীচে দেখানো হিসাবে os.path.isfile() ব্যবহার করতে পারি:

ওএস আমদানি করুন

os.listdir('.'-এ x এর জন্য
for x in os.listdir('.'):
   if os.path.isfile(x): print ('file-', x)
   elif os.path.isdir(x): print ('directory-', x)
   elif os.path.islink(x): print ('link-', x)
   else: print ('---', x)

আউটপুট

directory- .pytest_cache
file- 4forces.json
file- annotation1.py
file- asyncWrite.txt
file- attribute_access.py
file- background_process.py
file- background_process2.py
file- BeautifulSoup_script1.py
file- bottle_exampl1.py
file- bottole_test1.py
directory- build
file- built-in_funct.py
file- callable_objects1.py
file- cars.csv
file- classes_instance.py
file- class_attributes.py
file- class_attributes1.py
file- code_gmplot.py
file- config.py
file- data1.json
file- datafile.txt
file- datawork
file- data_pandas1.csv
file- data_pandas1.xlsx
file- debugger_pdb.py
file- debugging_timeit1.py
file- debugging_timeit2.py
file- define_class.py
file- directoryTreeStruc.py
directory- dist
directory- django
directory- DLLs
directory- Doc
file- dynamic_array_implementation.py

আমরা একটি নির্দিষ্ট পথ থেকে ফাইল সংগ্রহ করতে filter() ব্যবহার করে ওয়ান-লাইনার রাখতে পারি -

list(filter(lambda x: os.path.isfile(x), os.listdir('.')))

আউটপুট

['4forces.json', 'annotation1.py', 'asyncWrite.txt', 'attribute_access.py', 'background_process.py', 'background_process2.py', 'BeautifulSoup_script1.py', 'bottle_exampl1.py', 'bottole_test1.py', 'built-in_funct.py', 'callable_objects1.py', 'cars.csv', 'classes_instance.py', 'class_attributes.py', 'class_attributes1.py', 'code_gmplot.py', 'config.py', 'data1.json', 'datafile.txt', 'datawork', 'data_pandas1.csv', 'data_pandas1.xlsx', 'debugger_pdb.py', 'debugging_timeit1.py', 'debugging_timeit2.py', 'define_class.py', 'directoryTreeStruc.py', 'dynamic_array_implementation.py', 'EDA_python1.py', 'EmpID.pickle', 'encapsulation.py', 'encapsulation1.py', 'enumerate1.py', 'eRecord.yaml', 'exampleCSV.csv', 'exampleCSV.py', 'exception1.py', 'exception2.py', 'exception2_1.py', 'exception3.py', 'exception3_1.py', 'exception4.py', 'exception5.py', 'exercise.txt', 'faking_files.py', 'fileone', 'files_background.py', 'finally.txt', 'finally_try_except.py', 'finally_try_except1.py', 'finally_try_except2.py', 'flatten&Ravel_Numpy1.py', 'functions_are_object_too.py', 'function_annotation.py', 'function_annotation1.py', 'function_annotation2.py', 'function_annotation3.py', 'function_annotation4.py', 'func_method.py', 'gc1.py', 'gmplot.py', 'gmplot1.py', 'gmplot11.py', 'gmplot2.py', 'google_search1.py', 'google_search_using_python.py', 'inheritance_example.py', 'inheriting from built-in.py', 'inheriting from built-in1.py', 'inheriting_attributes.py', 'inheriting_the_constructor.py', 'instance_data.py', 'instance_methods.py', 'interques1.py', 'invoice_file1.yaml', 'iterables1.py', 'iterables2.py', 'johnde_test1', 'jsonToPython.py', 'json_example1.json', 'json_example1.py', 'json_example2.py', 'json_script1_loadeRecord.py', 'LDE_EQUITIES_LAST_5_YEARS.csv', 'lib_request.py', 'LICENSE.txt', 'listing_files_directories.py', 'list_comprehension1.py', 'list_comprehension2.py', 'logging.log', 'logging1.py', 'magicmethods_operator_add.py', 'magicmethods_operator_add1.py', 'MainP.py', 'matplotlibsam1.py', 'metaclass1.py', 'metaclass2.py', 'metaclass3.py', 'metaclass4.py', 'method.py', 'methodOverloading.py', 'methodOverloading1.py', 'methodOverloading_defaultArgument.py', 'multiple_inheritance.py', 'multiple_inheritance1.py', 'myfile.py', 'my_map.html', 'NegativeAgeException.py', 'NegativeNumberException.py', 'NEWS.txt', 'object_lookup.py', 'OtherP.py', 'out.txt', 'pandas_script.py', 'pandas_script1.py', 'pandas_script2.py', 'pattern_matching1.py', 'pattern_matching2.py', 'pdb_example1.py', 'pdb_example2.py', 'pickle1.py', 'pickle2.py', 'pickled_list', 'pickle_dictionary1.py', 'pickle_list1.py', 'pickle_test1.py', 'placing_it_in_context.py', 'plotly.py', 'polymorphism_example.py', 'primeNum1.py', 'privateVar1.py', 'private_variable_naming.py', 'project_scrap1.py', 'pygame_script1.py', 'pygmap1.py', 'pygmap2.py', 'pygmaps.py', 'pymaps1.py', 'python.exe', 'python.pdb', 'python3.dll', 'python36.dll', 'python36.pdb', 'pythonw.exe', 'pythonw.pdb', 'python_tricks1.py', 'python_tricks2.py', 'replacing_string_to_number1.py', 'serialization web objects encoder.py', 'serialization web objects.py', 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py', 'serialization_pickle2.py', 'serialization_pickle_storing_instances.py', 'serialization_pyaml_file1.py', 'serialization_pyaml_file2.py', 'serialization_pyaml_script1.py', 'serialization_unpickle.py', 'serialization_unpickle2.py', 'sets1.py', 'simpy1.py', 'simpy2.py', 'stocks_list.csv', 'storing_object1.py', 'storing_objects.py', 'termcolor1.py', 'test.py', 'test.txt', 'test1.py', 'test1.txt', 'test123.py', 'test2.json', 'test2.py', 'test2.txt', 'test_project1', 'test_sample1.py', 'test_sample2.py', 'test_sample3.py', 'test_sample4.py', 'tkinter1.py', 'tkinter2.py', 'tkinter_firstApp.py', 'try_except_block.py', 'tuple1.py', 'unpickle.py', 'unpickle3.py', 'unpickle_dict1.py', 'unpickle_list1.py', 'variable_arguments_list.py', 'variable_arguments_list1.py', 'vcruntime140.dll', 'winquality1.py', 'workfile1', '__init__ Constructor.py']

ফিল্টার ব্যবহার করে ডিরেক্টরির তালিকা পেতে:

list(filter(lambda x: os.path.isdir(x), os.listdir('.')))

আউটপুট

['.pytest_cache', 'build', 'dist', 'django', 'DLLs', 'Doc', 'etc', 'gmplot', 'gmplot-1.2.0', 'gmplot.egg-info', 'include', 'Lib', 'libs', 'networkP', 'Scripts', 'selenium', 'share', 'tcl', 'Tools', '__pycache__']

একটি নির্দিষ্ট ধরনের ফাইল খোঁজা

নীচে একটি ডিরেক্টরিতে পাঠ্য ফাইলগুলি সন্ধান করার জন্য একটি ওয়ান-লাইনার রয়েছে৷ অনুগ্রহ করে মনে রাখবেন এটি নির্দেশিকা অনুক্রমের মধ্যে আসে না কিন্তু শুধুমাত্র নির্দিষ্ট ডিরেক্টরিতে মিলিত এন্ট্রিগুলি ফিরিয়ে দেবে৷

list(filter(lambda x: x.endswith('.txt'), os.listdir('.')))

আউটপুট

['asyncWrite.txt', 'datafile.txt', 'exercise.txt', 'finally.txt', 'LICENSE.txt', 'NEWS.txt', 'out.txt', 'test.txt', 'test1.txt', 'test2.txt']

আমরা তালিকা বোধগম্যতা ব্যবহার করেও উপরে কোড লিখতে পারি,

>>> list(x for x in os.listdir('.') if x.endswith('.txt'))
['asyncWrite.txt', 'datafile.txt', 'exercise.txt', 'finally.txt', 'LICENSE.txt', 'NEWS.txt', 'out.txt', 'test.txt', 'test1.txt', 'test2.txt']

আরেকটি উপায় হল রেগুলার এক্সপ্রেশন -

import re
fx = re.compile(r'\.(txt|py)')
print(list(filter(fx.search, os.listdir('.'))))

আউটপুট

['.pytest_cache', 'annotation1.py', 'asyncWrite.txt', 'attribute_access.py', 'background_process.py', 'background_process2.py', 'BeautifulSoup_script1.py', 'bottle_exampl1.py', 'bottole_test1.py', 'built-in_funct.py', 'callable_objects1.py', 'classes_instance.py', 'class_attributes.py', 'class_attributes1.py', 'code_gmplot.py', 'config.py', 'datafile.txt', 'debugger_pdb.py', 'debugging_timeit1.py', 'debugging_timeit2.py', 'define_class.py', 'directoryTreeStruc.py', 'dynamic_array_implementation.py', 'EDA_python1.py', 'encapsulation.py', 'encapsulation1.py', 'enumerate1.py', 'exampleCSV.py', 'exception1.py', 'exception2.py', 'exception2_1.py', 'exception3.py', 'exception3_1.py', 'exception4.py', 'exception5.py', 'exercise.txt', 'faking_files.py', 'files_background.py', 'finally.txt', 'finally_try_except.py', 'finally_try_except1.py', 'finally_try_except2.py', 'flatten&Ravel_Numpy1.py', 'functions_are_object_too.py', 'function_annotation.py', 'function_annotation1.py', 'function_annotation2.py', 'function_annotation3.py', 'function_annotation4.py', 'func_method.py', 'gc1.py', 'gmplot.py', 'gmplot1.py', 'gmplot11.py', 'gmplot2.py', 'google_search1.py', 'google_search_using_python.py', 'inheritance_example.py', 'inheriting from built-in.py', 'inheriting from built-in1.py', 'inheriting_attributes.py', 'inheriting_the_constructor.py', 'instance_data.py', 'instance_methods.py', 'interques1.py', 'iterables1.py', 'iterables2.py', 'jsonToPython.py', 'json_example1.py', 'json_example2.py', 'json_script1_loadeRecord.py', 'lib_request.py', 'LICENSE.txt', 'listing_files_directories.py', 'list_comprehension1.py', 'list_comprehension2.py', 'logging1.py', 'magicmethods_operator_add.py', 'magicmethods_operator_add1.py', 'MainP.py', 'matplotlibsam1.py', 'metaclass1.py', 'metaclass2.py', 'metaclass3.py', 'metaclass4.py', 'method.py', 'methodOverloading.py', 'methodOverloading1.py', 'methodOverloading_defaultArgument.py', 'multiple_inheritance.py', 'multiple_inheritance1.py', 'myfile.py', 'NegativeAgeException.py', 'NegativeNumberException.py', 'NEWS.txt', 'object_lookup.py', 'OtherP.py', 'out.txt', 'pandas_script.py', 'pandas_script1.py', 'pandas_script2.py', 'pattern_matching1.py', 'pattern_matching2.py', 'pdb_example1.py', 'pdb_example2.py', 'pickle1.py', 'pickle2.py', 'pickle_dictionary1.py', 'pickle_list1.py', 'pickle_test1.py', 'placing_it_in_context.py', 'plotly.py', 'polymorphism_example.py', 'primeNum1.py', 'privateVar1.py', 'private_variable_naming.py', 'project_scrap1.py', 'pygame_script1.py', 'pygmap1.py', 'pygmap2.py', 'pygmaps.py', 'pymaps1.py', 'python_tricks1.py', 'python_tricks2.py', 'replacing_string_to_number1.py', 'serialization web objects encoder.py', 'serialization web objects.py', 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py', 'serialization_pickle2.py', 'serialization_pickle_storing_instances.py', 'serialization_pyaml_file1.py', 'serialization_pyaml_file2.py', 'serialization_pyaml_script1.py', 'serialization_unpickle.py', 'serialization_unpickle2.py', 'sets1.py', 'simpy1.py', 'simpy2.py', 'storing_object1.py', 'storing_objects.py', 'termcolor1.py', 'test.py', 'test.txt', 'test1.py', 'test1.txt', 'test123.py', 'test2.py', 'test2.txt', 'test_sample1.py', 'test_sample2.py', 'test_sample3.py', 'test_sample4.py', 'tkinter1.py', 'tkinter2.py', 'tkinter_firstApp.py', 'try_except_block.py', 'tuple1.py', 'unpickle.py', 'unpickle3.py', 'unpickle_dict1.py', 'unpickle_list1.py', 'variable_arguments_list.py', 'variable_arguments_list1.py', 'winquality1.py', '__init__ Constructor.py']

os.walk()- রিকারসিভ ডিসেন্ট ব্যবহার করা

os.walk() পদ্ধতি একটি ডিরেক্টরি ট্রিতে ফাইলের নাম তৈরি করে।

import os
for root, dirs, files in os.walk(r'C:\Python\Python361\selenium'):
   for filename in files:
      print(filename

আউটপুট

geckodriver.log
test1.py
x_ignore_nofocus.so
x_ignore_nofocus.so
getAttribute.js
isDisplayed.js

  1. C# ব্যবহার করে ডিরেক্টরি এবং ফাইলগুলি তালিকাভুক্ত করা

  2. পাইথন ব্যবহার করে uuencode ফাইল এনকোড এবং ডিকোড করুন

  3. কীভাবে জাভাতে ফাইল এবং ডিরেক্টরি মুছে ফেলবেন

  4. লিনাক্সে ফাইল এবং ডিরেক্টরি তালিকাভুক্ত করার জন্য কমান্ড