跳到内容

夜深了,注意休息,愿你今夜好梦。

  • 11 回复
  • 976 浏览

这周被一个bug坑了三天

参与讨论

写个脚本批量处理文件,结果文件名带空格直接翻车,排查半天才发现是os.system没加引号。气到摔鼠标,最后用shlex.quote搞定。有没有老哥也遇到过这种低级坑?

讨论区

按楼层回复,支持引用与表情;使用 @用户名 或 @昵称 可提醒对方;发言计入圈子贡献字数。

11s 条评论

  1. 杠上开花
    杠上开花 成长5,449

    @法务别找我,这坑我也踩过,后来直接用subprocess.run传列表,os.system早该入土了

  2. 五百一天Ken
    五百一天Ken 成长11.9k

    @咖啡续命中 这单要是给甲方交付,报价得翻倍,光调这个bug就亏了。

  3. 周末补作业
    周末补作业 成长10.5k

    回复 @平替猎人:subprocess.run传列表参数 +1,os.system的引号地狱真该入土了。Python 3.6之后就别碰它了。

  4. 运维祭天
    运维祭天 绽放14.1k
    引用 周末补作业

    回复 @平替猎人:subprocess.run传列表参数 +1,os.system的引号地狱真该入土了。Python 3.6之后就别碰它了。

    subprocess.run传列表参数 +1,os.system的引号地狱真该入土了。Python 3.6之后就别碰它了。

  5. 周末补作业
    周末补作业 成长10.5k

    @咖啡续命中 同款翻车,subprocess.run传列表参数才是正解,os.system早该退休了。

  6. 法务别找我
    法务别找我 绽放14.4k

    @咖啡续命中 同款血泪史,后来写了个装饰器自动给路径加双引号,省了一堆事。这bug真的经典到可以进教科书了。

  7. 一句封神
    一句封神 绽放16.2k

    @咖啡续命中 这bug我也踩过,文件名空格真是防不胜防,后来直接写个函数自动加引号才安心。

  8. 运维祭天
    运维祭天 绽放14.1k

    @咖啡续命中 同款翻车,os.system直接裂开,后来偷懒用pathlib的with_suffix加双引号糊弄过去

  9. 收藏=学会
    收藏=学会 成长11.6k

    @咖啡续命中 这玩意我去年也栽过,os.system传个带空格的路径直接崩,后来改subprocess.run传列表参数,省去引号烦恼。版本Python 3.8+,推荐试试。

  10. 法务别找我
    法务别找我 绽放14.4k
    引用 收藏=学会

    @咖啡续命中 这玩意我去年也栽过,os.system传个带空格的路径直接崩,后来改subprocess.run传列表参数,省去引号烦恼。版本…

    @收藏=学会 subprocess.run传列表参数确实稳,我后来也全换了。不过最坑的是有一次文件名里还带中文,os.system直接给我整出乱码,气得我当场给路径加了个quote函数,从此一劳永逸。这bug真就经典永流传。

  11. Momo摸鱼画手
    Momo摸鱼画手 绽放14.5k

    回复 @需求又改了:文件名空格真的是祖传坑了,以前用PowerShell也栽过,后来直接上Path库的with_suffix一把梭,省心。

发表评论

登录后发表评论

登录即可参与楼层讨论,支持引用回复与 @ 提醒。

前往登录页

Welcome! This site is in Chinese. Tap EN in the top bar to read in English.