V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
shadownet
V2EX  ›  问与答

Python 如何处理文件名里有空格?

  •  
  •   shadownet · Dec 7, 2017 · 8774 views
    This topic created in 3072 days ago, the information mentioned may be changed or developed.

    #请不要看题目就说加双引号

    需求是使用 Python 批量改一些文件名, 所以文件名会在变量里,请问有人结果过类似问题吗,如何解决的?

    12 replies    2019-08-12 17:30:54 +08:00
    wwqgtxx
        1
    wwqgtxx  
       Dec 7, 2017 via iPhone
    我记得 os.walk 能直接把 filename 给分割出来
    shadownet
        2
    shadownet  
    OP
       Dec 7, 2017
    @wwqgtxx 是可以,不过还是需要自己转义并加上双引号,我正在试 2 种一起
    roricon
        3
    roricon  
       Dec 7, 2017
    其实没看懂你想问啥, 字符串变量里也没说不让有空格啊. 你能举个例子么?
    Aliencn
        4
    Aliencn  
       Dec 7, 2017   ❤️ 2
    加双引号
    shadownet
        5
    shadownet  
    OP
       Dec 7, 2017
    @roricon 遍历到的文件路径 /aaa/bbb ccc/ddd eee.txt

    你如果用 os 库操作它?
    roricon
        6
    roricon  
       Dec 7, 2017
    https://stackoverflow.com/a/14852407

    os 库支持打开带空格的路径啊...
    Osk
        7
    Osk  
       Dec 7, 2017 via Android
    os.path.basename()
    os.path.dirname()

    ???

    我没明白为何要手动去转义,又不是 shell 脚本,最多用下 raw string 啊
    shadownet
        8
    shadownet  
    OP
       Dec 7, 2017
    @roricon os 是没问题,但是我还需要 open 的
    shadownet
        9
    shadownet  
    OP
       Dec 7, 2017
    @Osk 需要 open, rename
    roricon
        10
    roricon  
       Dec 7, 2017   ❤️ 1
    >>> import os
    >>> folder = "abc bcd"
    >>> f = open(os.path.join('/tmp', folder, 'test.txt'))
    >>> f.readline()
    ''
    >>> os.rename(os.path.join('/tmp', folder, 'test.txt'), '/tmp/abc bcd/ok.txt')

    $ ls /tmp/abc\ bcd
    ok.txt

    还是没明白你遇到什么问题了
    Osk
        11
    Osk  
       Dec 7, 2017 via Android
    @roricon 同没明白,open()和 os.rename()处理空格都没问题。难道楼主用了 os.system("rename ")
    guocdfeifei
        12
    guocdfeifei  
       Aug 12, 2019
    尝试下用这个方法,我用了下可以哦
    opfile = os.path.normpath(opfile)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5686 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 07:35 · PVG 15:35 · LAX 00:35 · JFK 03:35
    ♥ Do have faith in what you're doing.