python 为什么明明有这个文件路径,但有时候会找不到

风满楼kk 2016-04-14 10:10:32
这个问题我碰到过好几次了,我用os.listdir()去访问服务器上的共享文件夹,获取其中的子文件和子文件夹,是有时候能找到,有时候却找不到路径(但这个路径的文件是存在的)。我后来做了一个log文件,用来收集错误信息,发现有很多提示不存在的路径,会莫名其妙的变成三斜杠、四斜杠,而这些路径,在前几次搜索,或者后几次搜索中,都是正常的,可以找到的。我试过用双斜杠、反斜杠,来定义路径,但类似的问题还是存在,请问是为什么?是我对os.listdir()这个函数的理解错了么,求指点,谢谢!

以下这图是不分原代码,rootpath我会替换成‘/10.100.240.57/Rootsource’,或者双斜杠代替。
...全文
9899 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CDSoftwareWj 2016-04-18
  • 打赏
  • 举报
回复
字母r 不好用,尤其是用多平台开发和部署时会有问题,我说的那个函数,再配合 os.path.abspath('.') 然后再拼接是最好的 os.path.normpath("%s\%s" % ("dirName1", "dirName2")) 这个的最大好处是,会按你当前运行系统的“/”或"\" 来提花 你"%s\%s" % ("dirName1", "dirName2")这句里的那个“\”,你只管分隔,而不需要管在具体系统下会用什么目录分隔符
CDSoftwareWj 2016-04-16
  • 打赏
  • 举报
回复
a = os.path.normpath("%s\%s" % ("dirName1", "dirName2")) print a 这个不难吧
阿凯99 2016-04-16
  • 打赏
  • 举报
回复
有的系统自己会在路径上加上斜杠,就形成了2个或者更多斜杠的状况。最好在路径前加个字母r,所有问题统统解决。
阿凯99 2016-04-16
  • 打赏
  • 举报
回复
有的系统自己会在路径上加上斜杠,就形成了2个或者更多斜杠的状况。最好在路径前加个字母r,所有问题统统解决。
风满楼kk 2016-04-16
  • 打赏
  • 举报
回复
引用 4 楼 CDSoftwareWj 的回复:
a = os.path.normpath("%s\%s" % ("dirName1", "dirName2")) print a 这个不难吧
明白了,十分感谢! 能再跟我说下,join不是用来拼接路径的么,为什么别用它呢,是有什么缺点么?
CDSoftwareWj 2016-04-15
  • 打赏
  • 举报
回复
整理路径,请用 os.path.normpath() 进行整理,然后你再试试,不要用 join
风满楼kk 2016-04-15
  • 打赏
  • 举报
回复
引用 1 楼 CDSoftwareWj 的回复:
整理路径,请用 os.path.normpath() 进行整理,然后你再试试,不要用 join
如果我不用join,怎么能把子文件夹添加到新的路径中呢?
panghuhu250 2016-04-15
  • 打赏
  • 举报
回复 2
贴完整的能重复该错误的代码. 很多时候问题在你没想到的地方. 另外, 用文本贴代码, 别贴图.

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧