Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แสดงรายการไดเร็กทอรีและไฟล์ใน Python?


มีหลายวิธีในการแสดงรายการไดเร็กทอรีและไฟล์ใน python

แสดงรายการไฟล์ในไดเร็กทอรี

วิธีที่ง่ายที่สุดวิธีหนึ่งในการรับไฟล์หรือไดเร็กทอรีทั้งหมดจากพาธเฉพาะคือการใช้เมธอด os.listdir()

นำเข้า osfor x ใน os.listdir('.'):print(x)

ผลลัพธ์

.pytest_cache4forces.jsonannotation1.pyasyncWrite.txtattribute_access.pybackground_process.pybackground_process2.pyBeautifulSoup_script1.pybottle_exampl1.pybottole_test1.pybuildbuilt-in_funct.pycallable_objects1.pybeautySoup_script1.pybottle_exampl1.pybottole_test1.pybuildbuilt-in_funct.pycallable_objects1.pycars_intributejsv.pycallable_objects1.pycars_intributejsv.class.pycars_intributejsv.> 

โค้ดด้านบนแสดงรายการไฟล์และไดเร็กทอรีจากไดเร็กทอรีการทำงานปัจจุบัน หากคุณต้องการแสดงรายการไฟล์และไดเร็กทอรีจากไดเร็กทอรีเฉพาะ เพียงส่งชื่อพาธแบบสัมบูรณ์

นำเข้า osfor x ใน os.listdir(r'C:\Python\Python361\selenium'):print(x)

ผลลัพธ์

geckodriver.logtest1.pywebdriver

ผลลัพธ์จะคล้ายกับลำดับชั้นของโฟลเดอร์ของเรา -

แสดงรายการไดเร็กทอรีและไฟล์ใน Python?

เอาต์พุตด้านบนไม่ได้ระบุว่าเอาต์พุตของเราเป็นไฟล์หรือไดเร็กทอรีหรือลิงก์ ฯลฯ หากคุณต้องการค้นหาว่ารายการนั้นเป็นไฟล์ ไดเร็กทอรี ฯลฯ เราสามารถใช้ os.path.isfile() ดังที่แสดงด้านล่าง:

ระบบปฏิบัติการนำเข้า

สำหรับ x ใน os.listdir('.'):if os.path.isfile(x):print ('file-', x) elif os.path.isdir(x):print ('directory-' , x) elif os.path.islink(x):พิมพ์ ('link-', x) อื่น:พิมพ์ ('---', x)

ผลลัพธ์

directory- .pytest_cachefile- 4forces.jsonfile- annotation1.pyfile- asyncWrite.txtfile- attribute_access.pyfile- background_process.pyfile- background_process2.pyfile- BeautifulSoup_script1.pyfile- bottle_exampl1.pyfile-bottole_test1.py builtdirectory- buildfile- pyfile- callable_objects1.pyfile- cars.csvfile- classes_instance.pyfile- class_attributes.pyfile- class_attributes1.pyfile- code_gmplot.pyfile- config.pyfile- data1.jsonfile- datafile.txtfile- de dataworkfile- data_pandas1.csvfile- data_pandapxlfiles pyfile- debugging_timeit1.pyfile- debugging_timeit2.pyfile-define_class.pyfile- directoryTreeStuc.pydirectory- distdirectory- djangodirectory- DLLsdirectory- Docfile- 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 ', 'สุดท้าย_tr y_except2.py', 'flatten&Ravel_Numpy1.py', 'functions_are_object_too.py', 'function_annotation.py', 'function_annotation1.py', 'function_annotation2.py', 'function_annotation3.py', 'function'_annotation' py', 'gc1.py', 'gmplot.py', 'gmplot1.py', 'gmplot11.py', 'gmplot2.py', 'google_search1.py', 'google_search_using_python.py', 'inheritance_example.py' , 'สืบทอดจาก built-in.py', 'สืบทอดจาก 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'_script._loade2.py py', 'LDE_EQUITIES_LAST_5_YEARS.csv', 'lib_request.py', 'LICENSE.txt', 'listing_files_directories.py', 'list_comprehension1.py', 'list_comprehension2.py', 'logging.py', 'logging1.py' , 'magicmethods_operator_add.py', 'magicmethods_operator_add1.py', 'MainP.py', 'mat' plotlibsam1.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' , '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', 'pytho n_tricks2.py', 'replacing_string_to_number1.py', 'serialization Web object encoder.py', 'serialization web object.py', 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py_, 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py', 'serialization_pickle.py' ', 'serialization_pickle_storing_instances.py', 'serialization_pyaml_file1.py', 'serialization_pyaml_file2.py', 'serialization_pyaml_script1.py', 'serialization_unpickle.py', 'serialization_pyaml_file2.py', 'serialization_pyaml_script1.py', 'serialization_unpickle.py', 'serialization.pyaml_1,'s.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.p' y', '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__']

การค้นหาไฟล์บางประเภท

ด้านล่างนี้เป็นบรรทัดเดียวเพื่อค้นหาไฟล์ข้อความในไดเร็กทอรี โปรดทราบว่าสิ่งนี้ไม่ได้ลงมาในลำดับชั้นของไดเร็กทอรี แต่จะส่งคืนรายการที่ตรงกันในไดเร็กทอรีที่ระบุ

รายการ(ตัวกรอง(แลมบ์ดา 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 comprehension ได้เช่นกัน

>>>> list(x สำหรับ x ใน 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 refx =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_ann otation2.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', 'รับช่วงต่อจาก built-in.py', 'รับช่วงต่อจาก 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' 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', 'myfi' le.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_' project_scrap1.py', 'pygame_script1.py', 'pygmap1.py', 'pygmap2.py', 'pygmaps.py', 'pymaps1.py', 'python_tricks1.py', 'python_tricks2.py', 'replacing_string_ton_nn py', 'serialization web object encoder.py', 'serialization web object.py', 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py', 'serialization_pickle2.py', 'serialization_pickle_storing.py' 'serialization_pyaml_file1.py', 'serialization_pyaml_file2.py', 'serialization_pyaml_script1.py', 'ซีเรียลไลเซชั่น ion_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() วิธีการสร้างชื่อไฟล์ในแผนผังไดเร็กทอรี

นำเข้ารูท osfor, dirs, ไฟล์ใน os.walk(r'C:\Python\Python361\selenium'):สำหรับชื่อไฟล์ในไฟล์:print(filename

ผลลัพธ์

geckodriver.logtest1.pyx_ignore_nofocus.sox_ignore_nofocus.sogetAttribute.jsisDisplayed.js