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

디렉토리의 Python 목록 파일:단계별 가이드

Python os 라이브러리는 디렉토리의 파일을 나열하는 데 사용됩니다. Python os.listdir() 메서드는 디렉터리의 모든 파일과 폴더 목록을 반환합니다. os.walk() 함수는 전체 파일 트리의 모든 파일 목록을 반환합니다.


종종 파이썬에서 파일로 작업할 때 디렉토리에 파일을 나열하고 싶은 상황에 직면하게 됩니다. 예를 들어 폴더에서 모든 Python 파일을 찾고 싶을 수 있습니다.

Python os 라이브러리는 디렉터리의 파일을 나열하는 데 사용할 수 있는 여러 메서드를 제공합니다. 이 튜토리얼에서는 os.listdir()을 사용하여 디렉터의 파일과 폴더를 가져오는 방법에 대해 설명합니다. os.walk() 사용에 대해서도 이야기하겠습니다. 디렉토리 의 파일 및 폴더 가져오기 하위 디렉토리에 있습니다.

파이썬 OS 라이브러리

Python os 라이브러리는 운영 체제 작업에 사용할 수 있는 여러 기능을 제공합니다. os 모듈에 포함된 기능은 Windows, Linux, Mac 등 모든 최신 운영 체제에서 작동합니다.

os는 외부 라이브러리이므로 사용을 시작하기 전에 코드로 가져와야 합니다. Python import 문을 사용하여 이를 수행할 수 있습니다.

import os

이제 os 라이브러리를 코드로 가져왔으므로 해당 함수를 사용하여 디렉토리의 항목을 나열할 수 있습니다.

파이썬 os.listdir()

파이썬에서 os.listdir() 메소드는 주어진 디렉토리에 있는 파일과 폴더를 나열합니다. 이 메서드는 운영 체제가 다른 디렉터리를 탐색하는 데 사용하는 '.' 및 '..'와 같은 특수 항목을 반환하지 않습니다.

os.listdir()은 또한 폴더의 첫 번째 수준을 넘어서는 파일과 폴더를 반환하지 않습니다. 즉, os.listdir() 메서드에 의해 발견된 하위 폴더 내에서 아무 것도 반환하지 않습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

os.listdir() 함수는 하나의 매개변수, 즉 검색하려는 파일 및 폴더 이름이 있는 디렉토리의 파일 경로를 허용합니다.

다음은 listdir 메서드의 구문입니다.

os.listdir(path)

Python 프로그램에서 이 방법을 사용하는 방법을 보여주는 예를 살펴보겠습니다.

os.listdir() 파이썬 예제

지난 10년 동안 Netflix의 주식 시장 성과를 분석하는 프로그램을 만들고 있다고 가정해 보겠습니다. 모든 원시 데이터가 포함된 폴더(이름:/home/data_analysis/netflix)가 있으며 프로그램 실행을 시작하기 전에 raw_data_2019.csv 파일이 해당 폴더 내에 존재합니다.

제대로 작동하려면 프로그램이 해당 특정 폴더에 특정 파일을 저장해야 합니다.

다음 코드를 사용하여 /home/data_analysis/netflix에 있는 파일 목록을 검색할 수 있습니다. 작업 디렉토리:

import os

path = '/home/data_analysis/netflix'

files = os.listdir(path)

for f in files:
	print(f)

우리 프로그램은 지정된 디렉토리의 모든 파일 및 폴더 목록을 검색하고 다음을 반환합니다.

README.md
app.py
raw_data_2016.csv
raw_data_2017.csv
raw_data_2018.csv
raw_data_2019.csv
processed_data

이제 raw_data_2019.csv 파일이 폴더에 있습니다. 보시다시피 그렇습니다.

코드를 분해해 보겠습니다. 첫 번째 줄에서 os.listdir() 에 액세스하기 위해 수행해야 하는 os 모듈을 가져옵니다. 함수. 그런 다음 path라는 Python 변수를 선언합니다. , 콘텐츠를 검색하려는 경로의 이름을 저장합니다.

다음 줄에서 os.listdir() 메서드를 사용하여 /home/data_analysis/netflix의 파일 및 폴더 목록을 가져옵니다. 예배 규칙서. 마지막으로 Python for 루프를 만듭니다. 이 루프는 os.listdir()에 의해 생성된 목록의 모든 항목을 반복합니다. . Python print() 문을 사용하여 각 파일의 이름을 콘솔에 출력합니다.

/home/data_analysis/netflix 디렉토리에는 6개의 파일과 하나의 디렉토리가 있습니다. 디렉토리는 processed_data라고 합니다. 확장자가 없기 때문에 다른 파일과 구별됩니다.

파이썬 os.walk()

os.walk() 함수는 트리에 포함된 파일 목록을 검색합니다. 메서드는 트리의 각 디렉터리를 반복합니다. 그런 다음 os.walk()는 디렉토리와 그 하위 디렉토리 내의 모든 파일과 폴더의 이름을 반환합니다.

os.walk() 구문 방법은 다음과 같습니다.

os.walk(top, topdown, onerror, followlinks)

os.walk() 메소드는 4개의 매개변수를 허용합니다.

  • 상단 검색하려는 구성 요소 파일 및 폴더 이름이 있는 최상위 디렉토리입니다(필수)
  • 하향식 , True로 설정하면 디렉토리가 위에서 아래로 스캔되어야 함을 지정합니다. 이 값을 False로 설정하면 디렉토리가 아래에서 위로 스캔됩니다(선택 사항)
  • 오류 오류가 발생하면 오류 처리기 제공(선택 사항)
  • 팔로우링크 , True로 설정하면 시스템 링크에서 참조하는 폴더를 방문합니다(선택 사항)

onerror 및 followlink가 더 고급이고 일반적으로 사용되지 않기 때문에 처음 두 매개변수에 중점을 둘 것입니다.

os.walk() 파이썬 예제

/home/data_analysis/netflix에 있는 모든 파일의 이름을 검색한다고 가정해 보겠습니다. 예배 규칙서. 또한 해당 폴더의 모든 하위 디렉토리에 무엇이 들어 있는지 알고 싶습니다.

위에서 논의한 것처럼 netflix 디렉토리에는 processed_data라는 하나의 폴더가 있습니다. . 다음 코드를 사용하여 /home/data_analysis/netflix에 있는 모든 파일의 이름을 검색할 수 있습니다. 디렉토리 하위 디렉토리:

import os

path = '/home/data_analysis/netflix'

for root, directories, files in os.walk(path, topdown=False):
	for name in files:
		print(os.path.join(root, name))
	for name in directories:
		print(os.path.join(root, name))

다음은 코드의 출력입니다.

/home/data_analysis/netflix/README.md
/home/data_analysis/netflix/app.py
/home/data_analysis/netflix/raw_data_2016.csv
/home/data_analysis/netflix/raw_data_2017.csv
/home/data_analysis/netflix/raw_data_2018.csv
/home/data_analysis/netflix/raw_data_2019.csv
/home/data_analysis/netflix/processed_data
/home/data_analysis/netflix/processed_data/final.csv

os.walk() 를 참조하는 os 모듈을 가져옵니다. 및 os.path.join() 나중에 우리 코드에서 메서드를 사용할 수 있습니다. 그런 다음 path라는 변수를 선언합니다. , 검색하려는 파일 이름의 경로를 저장합니다.

그런 다음 for을(를) 만듭니다. os.walk()를 사용하는 루프 경로에 있는 모든 파일 및 폴더 목록을 검색하려면 예배 규칙서. 이 루프는 os.walk()가 반환하는 파일과 폴더를 반복합니다. topdown=False를 지정한다는 점은 주목할 가치가 있습니다. os.walk()의 매개변수 코드에 하향식 검색을 수행하도록 지시하는 메서드입니다.

우리의 for 루프는 추가 for를 사용하여 os.walk() 메서드에 의해 발견된 각 파일과 디렉토리를 반복합니다. 루프. os.walk()의 파일을 콘솔에 출력합니다.

위의 코드에서 다음은 for입니다. 루프:

for root, directories, files in os.walk(path):
	for name in files:
		print(os.path.join(root, name))
	for name in directories:
		print(os.path.join(root, name))

그런 다음 우리 프로그램은 os.path.join()을 사용하여 각 파일의 루트 폴더(예:/home/data_analysis/netflix ) 및 파일 이름(예:raw_datra_2019.csv ). 루트 폴더는 파일이 존재하는 디렉토리 경로를 나타냅니다.

결론

Python listdir()을 사용할 수 있습니다. 이 작업을 수행하는 방법. walk()를 사용할 수도 있습니다. 을(를) 포함하여 디렉토리의 모든 항목을 나열하는 메소드 하위 디렉토리 내의 모든 것.

이 가이드에서는 os.listdir() 사용 방법과 예제를 살펴보았습니다. 및 os.walk() 파이썬에서 디렉토리의 파일과 폴더를 나열하는 방법. 이제 전문가처럼 Python의 디렉토리에 있는 파일을 나열하는 데 필요한 기술을 갖추게 되었습니다!

Python 코딩에 대해 자세히 알아보려면 전체 Python 학습 방법 가이드를 읽어보세요.