Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 디렉토리와 파일을 나열하시겠습니까?

<시간/>

파이썬에서 디렉토리와 파일을 나열하는 방법에는 여러 가지가 있습니다.

디렉토리의 파일 나열

특정 경로에서 모든 파일 또는 디렉토리를 가져오는 가장 쉬운 방법 중 하나는 os.listdir() 메서드를 사용하는 것입니다.

os.listdir('.')에서 osfor x 가져오기:print(x)

결과

.pytest_cache4forces.jsonannotation1.pyasyncWrite.txtattribute_access.pybackground_process.pybackground_process2.pyBeautifulSoup_script1.pybottle_exampl1.pybottole_test1.pybuildbuilt-in_funct.pycallable_objects1.pycars.csv> 

위의 코드는 현재 작업 디렉토리의 파일 및 디렉토리 목록을 보여줍니다. 특정 디렉토리의 파일과 디렉토리를 나열하려면 절대 경로 이름을 전달하면 됩니다.

os.listdir(r'C:\Python\Python361\selenium'):print(x)에서 osfor x 가져오기

결과

geckodriver.logtest1.pywebdriver

결과는 폴더 계층 구조와 유사합니다 -

Python에서 디렉토리와 파일을 나열하시겠습니까?

위의 출력은 우리의 출력이 파일인지 디렉토리인지 링크인지 여부를 알려주지 않습니다. 항목이 파일, 디렉토리 등인지 확인하려면 아래와 같이 os.path.isfile()을 사용할 수 있습니다.

가져오기 OS

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):인쇄('링크-', x) else:인쇄('---', x)

출력

디렉토리- .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.pydirectory-buildfile-built-in pyfile- callable_objects1.pyfile-cars.csvfile-class_instance.pyfile-class_attributes.pyfile-class_attributes1.pyfile-code_gmplot.pyfile-config.pyfile-data1.jsonfile-datafile.txtfile-dataworkfile-data_pandas1.csvfile-data_dbpandas1.csvfile-data_xpandas1. pyfile- debug_timeit1.pyfile- debugging_timeit2.pyfile- define_class.pyfile- directoryTreeStruc.pydirectory- distdirectory- djangodirectory- DLLsdirectory- Docfile- dynamic_array_implementation.py

특정 경로에서 파일을 수집하기 위해 filter()를 사용하는 한 줄짜리를 가질 수 있습니다 -

목록(필터(람다 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_method.'func_py. 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_example2.py', 'json_script1_loade py', 'LDE_EQUITIES_LAST_5_YEARS.csv', 'lib_request.py', 'LICENSE.txt', 'listing_files_directories.py', 'list_comprehension1.py', 'list_comprehension2.py', 'logging.log', 'logging.log', '로깅 , 'magicmethods_operator_add.py', 'magicmethods_operator_add1.py', 'MainP.py', '매트 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', 'placeing_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', '파이토 n_tricks2.py', 'replacing_string_to_number1.py', '직렬화 웹 개체 인코더.py', '직렬화 웹 개체.py', 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py', 'serialization_pickle ', 'serialization_pickle_storing_instances.py', 'serialization_pyaml_file1.py', 'serialization_pyaml_file2.py', 'serialization_pyaml_script1.py', 'serialization_unpickle.2, 'serialization_unpickle.2', 'serialization_pyaml_file1.py', 'serialization_unpickle '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__ 생성자.py']

필터를 사용하여 디렉토리 목록을 얻으려면:

목록(필터(람다 x:os.path.isdir(x), os.listdir('.')))

출력

['.pytest_cache', '빌드', 'dist', 'django', 'DLL', '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(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']

또 다른 방법은 정규식을 사용하는 것입니다 -

가져오기 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_python'1.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_add' 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_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', '직렬화 웹 개체 인코더.py', '직렬화 웹 개체.py', 'serialization_JSON.py', 'serialization_pickle.py', 'serialization_pickle1.py', 'serialization_pickle2.py', 'serialization_pickle_storing_instance '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', '테스트. 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() 메소드는 디렉토리 트리에 파일 이름을 생성합니다.

루트, 디렉토리, os.walk(r'C:\Python\Python361\selenium')의 파일 가져오기:파일의 파일 이름:print(filename

출력

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