(업무자동화) 파일, 엑셀

Shutil: 파일 및 폴더와 관련된 기능 및 클래스를 제공하는 라이브러리.
os: 운영 체제와 관련된 기능 및 클래스를 제공하는 라이브러리입니다.


* listdir: 폴더에 있는 파일 목록을 검색합니다.


* makedirs: 폴더 만들기
* isdir: 폴더가 이미 존재하는지 확인
* copyfile : 파일 복사

from os import listdir, makedirs
from os.path import isdir
from shutil import copyfile

input_dir="C:\\input\\"
output_dir="C:\\output\\"

file_list = listdir(input_dir)
for file in file_list :
    f_name = file(3:-4) + '.xlsx'
    if not isdir(output_dir) :
         makedirs(output_dir)
    copyfile(input_dir + f_name, output_dir + f_name)

위는 단순히 input_dir 폴더에 있는 것을 output_dir 폴더로 이동합니다.

특정 기준에 따라 폴더별로 파일을 이동할 때 파일 이름을 변경할 수 있습니다.

파일 복사가 너무 쉽습니다… 파일 복사 끝입니다.

* (복사 폴더) shutdown.copytree : 원본 폴더가 파일이거나 대상 경로에 파일이나 폴더가 있으면 오류 발생
* (폴더 삭제) shutdown.rmtree: 입력값이 파일일 경우 에러 발생
* (파일 삭제) shutdown.unlink : 입력값이 폴더일 경우 오류 발생
예) 슈틸 수입 카피트리에서
copytree(‘c:\\input_dir’ , ‘c:\\output_dir’)
rmtree(‘c:\\output_dir’)
링크 해제(‘c:\\input_dir\\download.txt’)
* (파일 삭제) shutdown.unlink : 입력값이 폴더일 경우 오류 발생
* 파일 열기 및 쓰기(CSV 파일 포함)
afile = open(‘test.csv’ , ‘w’)
afile.write(‘연월, 수익\n’)
* 파일 열기 및 읽기
예) f = open(테스트파일, ‘r’)
사실인 한:
라인 = f.readline()
라인이 아닌 경우:
부서지다


파이썬 엑셀로 작업하기

* openpyxl 사용… (cmd 창에서 > ‘pip install openpyxl’로 설치)
회사 PC는 파일 암호화 등으로 인해 오류가 발생할 수 있으므로 문제 해결을 위해 try 문을 추가하십시오…

from os import listdir
from openpyxl import load_workbook, Workbook

jobdir = "C:\\workspace\\org\\"
outdir = "C:\\workspace\\out\\"
files = listdir(jobdir)

files.sort(reverse=True)

result_xlsx = Workbook()
result_sheet = result_xlsx.active        #최근 활성화된 탭


try :
    for myfile in files :
        if myfile(-4:) !
= "xlsx" : # 폴더에서 엑셀파일이 아닌 경우 skip continue print(myfile) tg_xlsx = load_workbook(jobdir + myfile, read_only=True) tg_sheet = tg_xlsx("Sheet1") for row in tg_sheet.iter_rows() : row_data = () for cell in row : row_data.append(cell.value) result_sheet.append(row_data) result_xlsx.save(outdir + "result.xlsx") except Exception as e : print(e) finally : print('end')

정말 쉬운

#특정셀, 열, 행을 읽는 샘플 코드#


from openpyxl import load_workbook

xlsx = load_workbook('sample.xlsx', 'read_only=True) #read_only로 읽으면, 필요시마다 행간을 메모리로 읽어 속도 향상
sheet = xlsx.active

rows = sheet('1:2')           # 1~2행 읽기
rows = sheet('1')              # 첫 번째 행 가져옴
for row in rows :              # A1, B1, C1 읽기
col    = sheet('A')              # 첫 번째 열을 가져옴
for cell in col :                  # A1, A2, A3 읽기..

wb.close()                        # 닫기.