반응형
'''
1. baseballdataback 폴더에 잇는 모든 csv 파일을 탐색
2. csv 파일 읽기
3. csv 파일 첫 번째 로우 제거 후 다른 파일로 저장
4. 로깅 파일 작성
'''
import csv
import os
import logging
# 로깅 포맷팅 설정
logging.basicConfig(level=logging.DEBUG, filename='baseballdatabank-master\\log.txt',
format=' %(asctime)s - %(levelname)s - %(message)s')
def save_and_remove_header(filename):
# CSV 파일을 읽어 헤더를 제거하고 저장
# CSV 파일을 리스트로 만든다
csv_rows = []
with open(os.path.join('baseballdatabank-master', 'core', filename), 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
if reader.line_num == 1:
continue # 첫번째 라인 스킵
csv_rows.append(row)
# 리스트를 파일로 쓴다
with open(os.path.join('baseballdatabank-master', 'header-removed', filename), 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
for row in csv_rows:
writer.writerow(row)
def main():
# 헤더가 제거된 파일이 저장될 폴더를 만든다
os.makedirs(os.path.join('baseballdatabank-master', 'header-removed'), exist_ok=True)
# 작업디렉토리의 모든 CSV 파일을 순회한다
for filename in os.listdir(os.path.join('baseballdatabank-master', 'core')):
if not filename.endswith('.csv'):
continue # 확장자가 csv가 아니면 스킵한다.
# 작업 현황 로깅
logging.debug('saving file: {0} '.format(filename))
# print('saving file: ', filename)
# 헤더가 제거된 파일을 저장한다
save_and_remove_header(filename)
print('job completed..')
if __name__ == '__main__':
main()
job completed..
Process finished with exit code 0
반응형
'Python_Beginer > Study' 카테고리의 다른 글
List to CSV(List -> CSV File) (0) | 2019.08.10 |
---|---|
CSV to List(CSV File -> List) (0) | 2019.08.10 |
HRD 수업>파이썬을 이용한 자동화 스크립트 - Ch18 (0) | 2019.08.09 |
HRD 수업>파이썬을 이용한 자동화 스크립트 - Ch17 (0) | 2019.08.08 |
HRD 수업>파이썬을 이용한 자동화 스크립트 - 연습문제 14 (0) | 2019.08.07 |