파이썬에서 텍스트 파일을 불러와서 기존의 엑셀파일에 넣을 수가 있나요?

조회수 805회

안녕하세요?

쥬피터 노트북을 써서 계산을 하고 계산된 결과값들을 dataframe으로 만들어서 엑셀 파일에 저장을 했습니다. 그 후에 마지막으로 계산에 사용된 방법이나 계산 시간이 들어간 log 파일도 같이 엑셀 시트에 넣으려고 했는데요.

파이썬이 아닌 일반 윈도우상 작업으로는 txt파일 열고 전체 드래그해서 컨트롤 c+v를 하면 되는 작업인데

막상 파이썬 상에서 하려고하니까 검색해봐도 딱히 안나오고 어떻게 해야할지 모르겠네요.

일단

이미지

제가 원하는 형태로 복사되는건 이런 형태고요 시도를 해본코드는

import pandas as pd

log=open('path')

writer = pd.ExcelWriter('existing excel file', engine='xlsxwriter')

log.to_excel(writer , sheet_name='Sheet1', startcol=57,startrow=1)

writer.save()

기존에 표 형태의 dataframe들은 밑에 식 형태로 넣었는데 txt는 표형태로 되어있지 않으니 제대로 되질않네요. 어떻게 처리하면 좋을까요?

1 답변

  • to_excel 은 pandas dataframe 의 메소드입니다.

    대략 이렇게 하면 될 것 같아요.

    import pandas as pd
    
    with open("log.txt") as f:
        log_lines = f.readlines()
    
    log_df = pd.DataFrame(log_lines)
    with pd.ExcelWriter("logexcel.xlsx", engine="openpyxl", mode="a") as writer:
    
        log_df.to_excel(writer, sheet_name="Sheet3", startcol=2, startrow=2)
        writer.save()
    

    기존엑셀파일에 더할 때에는 append 모드를 설정( mode="a")해야 하고, engine 이 xlsxwriter 일 때에는 append 모드를 쓸 수 없네요.

    • 적어주신 코드로 실행을 했더니 [with pd.ExcelWriter("logexcel.xlsx", engine="openpyxl", mode="a") as writer:] 이 부분에서 BadZipFile: File is not a zip file 오류가 나오네요 찾아보니 xlsx가 압축 파일이니하면서 여러가지 이야기가 나오는데 검색부터 계속해볼게요 답글 달아주셔서 감사해요 김수환 2021.12.22 11:51

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)