0

我正在尝试将 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'

提前致谢。

4

1 回答 1

3

如果您使用的是 Windows,那么这是命名约定问题,在 Windows 中,您不能保留 : / \ > * ? " |名称中的字符。

尽量保持命名约定

name = 'output '+str(datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S"))+'.csv'
于 2013-08-05T09:01:31.663 回答