尝试将日期和时间添加到输出文件名(Python)

时间:2013-08-05 08:58:22

标签: python csv xls

我正在尝试将xls文件转换为csv并使用名称output加上今天的日期和时间进行保存。转换有效,但我的文件名有问题。 所需的输出文件名应为:output day time.csv,例如output 2013-08-05 10:50:55.csv

这是我的尝试。 name按照我的要求打印我的东西,但当我把它放在open()函数上时,它不起作用。

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

这是整个功能:

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'

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您正在使用Windows,那么这是命名约定问题,在Windows中您无法保留 名称中包含: / \ > * ? " |等字符。

尝试保持命名惯例,如

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