[求助,急] Python 文件保存出错,

2020 年 2 月 29 日
 justincnn

我写了一段 python 爬虫小程序,在 mac os 下可以正常保存文件,但是 win 下面保存出错,具体代码如下: xl.save(path_1 + '/'+str(name_exl) + '.xlsx') 错误提示:

OSError: [Errno 22] Invalid argument: 'C:/Users/Justin Ye/Desktop/2020-02-29 16:15:08.xlsx'

google 了下,应该是\和 /的问题,

我把代码修改为:

xl.save(path_1 + '\'+str(name_exl) + '.xlsx') 还是不行,

其中 path_1 是用户在图形界面选择的文件保存路径,

请大神告知下处理办法,万分感谢啊

3274 次点击
所在节点    Python
11 条回复
Jblue
2020 年 2 月 29 日
os.path.join()
justincnn
2020 年 2 月 29 日
@Jblue 谢谢,感觉应该就是 os 可以解决,但是我修改为; xl.save(os.path.join(path_1, '/' , str(name_exl) , '.xlsx'))
跳错的内容改为:OSError: [Errno 22] Invalid argument: 'C:/2020-02-29 16:35:46\\.xlsx'

可以告知下:应该如何用 os.path.join()修改,刚开始学 win 的 python,谢谢啊。
TimePPT
2020 年 2 月 29 日
试试用 pathlib,跨平台时候好用
https://docs.python.org/3/library/pathlib.html
imkuang
2020 年 2 月 29 日
windows 文件、文件夹名不能包含:的
imkuang
2020 年 2 月 29 日
@xiri 你可以去试一下手动新建一个名为 2020-02-29 16:15:08.xlsx 的文件就知道了
renmu
2020 年 2 月 29 日
4 楼正解
itskingname
2020 年 2 月 29 日
xl.save(os.path.join(path_1, str(name_exl) + '.xlsx'))
ClericPy
2020 年 2 月 29 日
re.sub(r'[^ \w]+', '_', name).strip()
lonewolfakela
2020 年 2 月 29 日
@xiri 准确来讲,文件名部分可以有一个冒号(但是不能像楼主一样用两个)。不过我估计很多人都不会注意到一个冒号会产生什么神奇的效果就是了。
具体可以参考 https://winaero.com/blog/alternative-ntfs-streams-in-windows-10/
AlohaV2
2020 年 2 月 29 日
@justincnn join 不需要加层级的分隔符 /或是\
ipwx
2020 年 2 月 29 日
windows 文件名不能用冒号。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/648633

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX