在Windows路径上使用os.path.dirname

时间:2016-04-04 12:37:29

标签: python linux python-2.7

我正在使用运行python 2.7的linux机器。 我想使用os.path.dirname()来获取文件完整路径的父目录(不是来自此机器),例如:
C:\\documents and settings\\Dan\\yada\\1.txt =>
将导致C:\\documents and settings\\Dan\\yada

但令我惊讶的是,我得到了空字符串。

任何人都可以解释为什么以及如何解决它?

1 个答案:

答案 0 :(得分:3)

改为使用ntpath

>>> import ntpath
>>> ntpath.dirname('C:\\documents and settings\\Dan\\yada\\1.txt')
'C:\\documents and settings\\Dan\\yada'

来自the documentation

  

由于不同的操作系统具有不同的路径名约定,因此标准库中有此模块的多个版本。 os.path模块始终是适用于Python运行的操作系统的路径模块,因此可用于本地路径。但是,如果要以其中一种格式操作始终的路径,也可以导入和使用各个模块。它们都有相同的界面:

     
      
  • posixpath用于UNIX风格的路径
  •   
  • ntpath用于Windows路径
  •   
  • macpath用于旧式MacOS路径
  •   
  • os2emxpath用于OS / 2 EMX路径
  •