我正在尝试将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'
提前致谢。
答案 0 :(得分:3)
如果您正在使用Windows,那么这是命名约定问题,在Windows中您无法保留
名称中包含: / \ > * ? " |
等字符。
尝试保持命名惯例,如
name = 'output '+str(datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S"))+'.csv'