2017-12-22 3 views
-2

파이썬 2.7에서는 Excel로 변환 할 CSV 파일이 많습니다. csv 파일의 이름은 abcd1.csv, abcd2.csv 등입니다. abcd1.xls, abcd2.xls 등으로 변환하고 싶습니다. 하나의 파일에서 수행 할 수 있지만 여러 파일에서 수행하는 방법을 알지 못합니다. 여러 csv 파일을 Excel 파일로 변환 하시겠습니까?

from openpyxl import Workbook 
import csv 

wb = Workbook() 
ws = wb.active 
file_name = "COUNT16_DISTRIBUTION" + str(count3*1) + ".csv" 
with open(file_name, 'r') as f: 
    for row in csv.reader(f): 
     ws.append(row) 
wb.save() 

FILE_NAME

이 while 루프에서 사용할 수있는 내가 각 csv 파일을 통해 갈 수 있지만 내가 .xls로 저장하는 방법을 잘 모릅니다 :

는 지금까지 사용했던 기능입니다.

import pandas as pd 
import os 

# Create function that converts csv 2 excel 
def csv2excel(filepath, sep=','): 
    df = pd.read_csv(filepath, sep=sep) 
    newpath = os.path.splitext(filepath)[0] + '.xlsx' 
    df.to_excel(newpath, index=False) 

# Loop through files and call the function 
for f in os.listdir('.'): 
    if f.endswith('.csv') and f.startswith('abcd'): 
     csv2excel(f) 
+0

가 https://superuser.com/questions/301431/how-to-batch-convert-csv-to-xls-xlsx 일을합니까 : 여기 – Hennich

+0

다른 해결책은'pandas'를 사용하는 것입니다. –

+0

코드를 함수로 변환하고'glob.glob()'또는'os.listdir()'을 사용하여 새로운 함수에 전달해야하는 파일을 결정하십시오. – martineau

답변

-1

은 팬더와 예입니다?
+0

if 루프에서 만약에 ii가 많은 csv 파일을 가지고 있다면 어떻게하면 'f.endswith'를 뭔가 여러 개의 CSV 파일의 이름을 가져 가야합니까? CSV 파일이 많이 있지만 그 중 모두를 만지고 싶지는 않습니다. 나는 주어진 이름을 가진 사람들 만 만지고 싶다. 나는 filename = "COUNT16_DISTRIBUTION"+ str (count3 * 1) + ".csv"를 시도하고 for 루프에서 i를 증가시키고 디렉토리의 다음 파일을 확인합니다. – anvinder

+0

패턴 abcd1.csv, abcd2.csv, abcd3.csv 등이 있습니다. 이것은 패턴이고 저는 abcd1.xls, abcd2.xls 등으로 저장하고 싶습니다. 제 초기 코드에서 그것을 할 수 있었지만 xls 파일을 열면 파일이 손상됩니다. – anvinder

+0

@anvinder'f.startswith ('abcd')'를 추가하는 방법은 편집 된 코드를 참조하십시오. –

관련 문제