V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
justincnn
V2EX  ›  Python

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

  •  
  •   justincnn · Feb 29, 2020 · 3073 views
    This topic created in 2250 days ago, the information mentioned may be changed or developed.

    我写了一段 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 是用户在图形界面选择的文件保存路径,

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

    11 replies    2020-02-29 18:35:10 +08:00
    Jblue
        1
    Jblue  
       Feb 29, 2020
    os.path.join()
    justincnn
        2
    justincnn  
    OP
       Feb 29, 2020
    @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
        3
    TimePPT  
    PRO
       Feb 29, 2020
    试试用 pathlib,跨平台时候好用
    https://docs.python.org/3/library/pathlib.html
    xiri
        4
    xiri  
       Feb 29, 2020
    windows 文件、文件夹名不能包含:的
    xiri
        5
    xiri  
       Feb 29, 2020
    @xiri 你可以去试一下手动新建一个名为 2020-02-29 16:15:08.xlsx 的文件就知道了
    renmu
        6
    renmu  
       Feb 29, 2020 via Android
    4 楼正解
    itskingname
        7
    itskingname  
       Feb 29, 2020 via iPhone
    xl.save(os.path.join(path_1, str(name_exl) + '.xlsx'))
    ClericPy
        8
    ClericPy  
       Feb 29, 2020
    re.sub(r'[^ \w]+', '_', name).strip()
    lonewolfakela
        9
    lonewolfakela  
       Feb 29, 2020
    @xiri 准确来讲,文件名部分可以有一个冒号(但是不能像楼主一样用两个)。不过我估计很多人都不会注意到一个冒号会产生什么神奇的效果就是了。
    具体可以参考 https://winaero.com/blog/alternative-ntfs-streams-in-windows-10/
    AlohaV2
        10
    AlohaV2  
       Feb 29, 2020 via iPhone
    @justincnn join 不需要加层级的分隔符 /或是\
    ipwx
        11
    ipwx  
       Feb 29, 2020
    windows 文件名不能用冒号。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5349 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 01:20 · PVG 09:20 · LAX 18:20 · JFK 21:20
    ♥ Do have faith in what you're doing.