[Python] .endswith(), os.path.join(), with open() as :, .startswith()

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

오늘의 코드

1. 디렉터리에서 텍스트 파일 찾기

2. 텍스트 파일에서 #이나 //으로 시작하는 내용 탐지하기

import os

dir_path = "example"
all_files = os.listdir(dir_path)
txt_files = []

for file in all_files:
    if file.endswith('.txt'):
        txt_files.append(file)

for filename in txt_files:
    file_path = os.path.join(dir_path, filename)
    with open(file_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
        for index, line in enumerate(lines):
            if line.startswith('#') or line.startswith("//"):
                print(f"{file_path}의 {index+1}번째 행 탐지!! 내용 : {line}")

 

오늘의 코드 결과

 

오늘의 코드 설명

dir_path = "example"
all_files = os.listdir(dir_path)
txt_files = []

디렉터리 example을 dir_path에 저장

dir_path 내의 파일, 폴더를 리스트 형태로 all_files에 저장

    >all_files=["01.txt", "02.txt", "03.txt"]

txt_files는 빈 리스트

1. 디렉터리에서 텍스트 파일 찾기

for file in all_files:

file은 리스트 all_files에서 반복

if file.endswith('.txt'):
	txt_files.append(file)

file이 .txt.로 끝날 경우

확장자가 txt인지 확인

리스트 txt_files에 file을 요소로 추가

    >txt_files= ["01.txt", "02.txt", "03.txt"]

txt_files에는 txt 확장자인 파일이 저장

2. 텍스트 파일에서 #이나 //으로 시작하는 내용 탐지하기

for filename in txt_files:

filename은 리스트 txt_files에서 반복

file_path = os.path.join(dir_path, filename)

경로(dir_path)와 파일 이름(filename)을 결합하여 file_path에 저장

with open(file_path, 'r', encoding='utf-8') as f:

file_path를 읽기 모드로 열어서 파일 내용을 f에 저장

lines = f.readlines()

f를 한 줄씩 lines에 저장

for문 안에 있기때문에 반복 진행될 예정

다음 진행때는 그 다음 줄을 저장

for index, line in enumerate(lines):

index는 리스트 lines의 인덱스를 반복

line은 리스트 lines의 값을 반복

line은 f의 한 줄씩 반복 (한 줄)

f는 file_path의 내용 (전체 내용)

if line.startswith('#') or line.startswith("//"):
	print(f"{file_path}의 {index+1}번째 행 탐지!! 내용 : {line}")

문자열 line이 #이나 //으로 시작할 때 print 출력

어떤 파일의 몇 번째 행에서 어떤 내용이 탐지되었는지 확인 가능