2013-08-05 2 views
0

xls 파일을 csv로 변환하려고 시도했으며 오늘 날짜와 시간을 더한 output이라는 이름으로 저장하려고합니다. 변환 작업은 가능하지만 파일 이름에 문제가 있습니다. 원하는 출력 파일 이름은 output day time.csv이어야합니다 (예 : output 2013-08-05 10:50:55.csv).출력 파일 이름 (Python)에 요일과 시간을 추가하려고 시도했습니다.

이것은 내 시도입니다. name은 내가 원했던대로 나에게 물건을 인쇄하지만, 내가 그것을 open()에 넣어 놓았을 때 작동하지 않는다.

import xlrd 
import csv 

def xls_to_csv: 
    print "Saving from xls to csv" 
    wb = xlrd.open_workbook('example.xls') 
    sh = wb.sheet_by_name('Page1') 

    // This two lines are the ones that they are giving me problems 
    name = 'output '+str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))+'.csv' 
    archivo_csv = open(str(name), 'wb') 

    wr = csv.writer(archivo_csv, quoting=csv.QUOTE_ALL) 
    for rownum in xrange(sh.nrows): 
      wr.writerow(sh.row_values(rownum)) 
    archivo_csv.close() 

이것은 에러가 도시된다 : 미리
IOError: [Errno 22] invalid mode ('wb') or filename: 'output 2013-08-05 10:59:44.csv'

감사

name = 'output '+str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))+'.csv' 
archivo_csv = open(str(name), 'wb') 

이 전체 기능이다.

+0

모든 같은 이름 지정 규칙을 유지하기 위해 이름 :/\ > * ? " | 같은 문자 ..

시도를 유지할 수 없습니다 창에서, 이름 지정 규칙 문제입니다 오류가 표시 되었습니까? – Raptor

+0

예. IOError : [Errno 22] 잘못된 모드 ('wb') 또는 파일 이름 : '출력 2013-08-05 10 : 59 : 44.csv " –

+0

OS가 맞습니까? 아마도 파일 이름에 허용되는 것에 한계가있을 것입니다. –

답변

2

Windows를 사용하는 경우는 당신이

name = 'output '+str(datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S"))+'.csv'