本文记录笔者今天遇到的一个Python问题,即:由于操作系统不同,保存文件名会??出现问题。下面以Mac系统和Windows系统为例,使用以下Python脚本保存一个Excel文件,代码如下:#-*-coding:utf-8-*-importxlwt,datetime#创建工作簿并设置编码工作簿=xlwt。workbook(encoding='utf-8')#创建工作表worksheet=workbook.add_sheet('MyWorksheet')#写入excelworksheet.write(0,0,label='thisistest')#savesuffix=datetime.datetime.now().strftime("%Y-%m-%d%H:%M:%S")workbook.save('./test_%s.xls'%suffix)在Mac系统上运行以上代码,会生成一个Excel文件,如下图所示:打开其中一个文件,内容如下:):File"C:/Users/HP/PycharmProjects/Github_From_PyCharm/test_xlwt.py",line14,inworkbook.save('./test_%s.xls'%suffix)File"C:\Users\HP\PycharmProjects\test\venv\lib\site-packages\xlwt\Workbook.py”,第710行,保存在doc.save(filename_or_stream,self.get_biff_data())文件“C:\Users\HP\PycharmProjects\test\venv\lib\site-packages\xlwt\CompoundDoc.py”,第262行,保存f=open(file_name_or_filelike_obj,'w+b')OSError:[Errno22]Invalidargument:'./test_2020-02-1921:12:13.xls'出现这个错误的原因不是我们使用xlwt模块的方式有问题,而是不同系统的差异。Windows系统的文件名中/\:*"<>|这些符号是不允许的因此上面的代码在Windows系统中会报错,而Mac系统则不会。当我们在Window系统,我们只需要把:(冒号)换成其他Windows系统支持的符号就行了。这是笔者在开发中遇到的坑,特此记录一下,作为总结。关于Mac的区别系统和Windows系统,我觉得有必要写个总结,下次分享。我的微信公众号:Python启蒙(微信ID:easy_web_scrape),欢迎大家关注~