【问题标题】:How to remove PythonCode from the path returned by os.path.dirname(__file__)?如何从 os.path.dirname(__file__) 返回的路径中删除 PythonCode?
【发布时间】:2019-11-03 13:52:18
【问题描述】:

我在 PythonCode 文件夹中有一个 python 脚本。我希望在使用 os.path.dirname(__file__) 时应该从中获取不包括 PythonCode 的路径,目前当我使用 os.path.dirname(__file__) 时,它正在返回:-

C:\Users\xyz\Documents\ABC\Python 代码

但我需要这条路:-

C:\Users\xyz\Documents\ABC\

导入操作系统

目录名 = os.path.dirname(__file__)

打印(目录名)

【问题讨论】:

    标签: python


    【解决方案1】:

    你可以再次包裹dirname上一个目录

    dirname=os.path.dirname(os.path.dirname(path))
    

    【讨论】:

    • 以及如何将返回为 C:\Users\xyz\Documents\ABC 的路径转换为 ​​C:/Users/xyz/Documents/ABC
    • 你可以做dirname=dirname.replace("\\","/")
    【解决方案2】:

    只需再次致电os.path.dirname() 了解您所拥有的:

    import os
    
    dirname = r"C:\Users\xyz\Documents\ABC\Python Code"
    wanted = os.path.dirname(dirname)
    print(wanted)  # -> C:\Users\xyz\Documents\ABC
    

    【讨论】:

      【解决方案3】:

      这已经回答here

      你可以这样做,

      import os
      print(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)))
      

      【讨论】:

        【解决方案4】:

        其他答案使用os.path,但您也可以使用标准库pathlib 模块(https://docs.python.org/3/library/pathlib.html),有些人更喜欢它,因为它更直观的面向对象界面:

        from pathlib import Path
        
        wanted = Path(__file__).parent.parent
        
        wanted_as_string = str(wanted)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-19
          • 2012-06-12
          • 2014-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多