Python으로 특정폴더 내 파일이름 읽기 및 엑셀 내용 읽기

요구사항

  • 파이썬으로 특정폴더안의 파일 이름을 읽는다.
  • 또한 특정 파일의 시트이름을 읽는다.
  • 내용을 읽어와 pandas의 객체로 반환한다.

파일이름 얻기

현재 파일의 구조는 아래와 같다.

파일의 이름을 얻어보자.

import os
from openpyxl import load_workbook
import pandas as pd

for (path, dir, files) in os.walk("/Users/xzero/excel_test/"):
    print("path:",path, "dir:", dir, "files:",files)

# path: /Users/xzero/excel_test/ dir: ['testdir'] files: ['test2.xlsx', '~$test1.xlsx', 'test1.xlsx']
# path: /Users/xzero/excel_test/testdir dir: [] files: ['test2.xlsx']
  • 현재 폴더의 파일 이름 얻기
## 현재 폴더에서 파일 이름 리스트를 얻기
path = "/Users/xzero/excel_test/"
file_list = os.listdir(path)
print ("file_list: {}".format(file_list))
# file_list: ['test2.xlsx', 'testdir', 'test1.xlsx']

## 파일중 엑셀파일 리스트 얻기
exfile_list =[i for i in file_list if os.path.splitext(i)[-1]==".xlsx"]
print("excel:", exfile_list)
# excel: ['test2.xlsx', 'test1.xlsx']

## 엑셀 시트 이름 얻기
wb = load_workbook(filename = "/Users/xzero/excel_test/test1.xlsx")
print (wb.sheetnames)
# ['1번', 'two']

## 엑셀 내용을 pandas 데이터프레임으로 얻기
customer_data_file = "/Users/xzero/excel_test/test1.xlsx"
customers = pd.read_excel(
    customer_data_file,
    sheet_name="two",
    header=1, # 몇 번째행을 header로 할지? 첫째행=0
    usecols="A:B", #사용할 열
)
print(customers.head(5))

#    순번 제목
# 0   1  a
# 1   2  b
# 2   3  c
# 3   4  a
# 4   5  a

Leave a Comment