【问题标题】:Convert a str to path type?将 str 转换为路径类型?
【发布时间】:2014-11-25 06:50:41
【问题描述】:

我正在尝试与一些保存配置的现有代码进行交互,并且需要一个类型为path.path 的文件路径。该代码期望从 pygtk 浏览器窗口(通过另一个函数)返回文件路径。我想在我的代码中的其他地方调用save_config 函数,其文件路径基于不同的输入,由字符串元素构成。

当我尝试运行代码时,我能够正确构造文件路径,但它是字符串类型,并且保存函数需要path.path 类型。

有没有办法将字符串转换为路径类型?我试过搜索,但只能找到相反的情况(字符串的路径)。我也尝试过使用os.path.join(),但它也会返回一个字符串。

编辑:这是 python 2.7,如果有区别的话。

【问题讨论】:

  • path.path(config_string)
  • 什么是path.path?听起来像是由您正在使用的代码定义的类;它不是标准类型或类。在 Python 3.4 之前,没有路径标准;在路径上运行的函数只使用字符串表示。 Python 3.4 引入了pathlib 模块,它提供了适当的对象来表示路径。
  • 当我运行type(file_path) 时,我得到<class 'path.path'> 作为响应。我的文件顶部有一个from path import path 行。我假设这只是os.path,但我是新手,编写此工具的人离开了公司。
  • 不是os.path,它是标准库中的一个模块,所以肯定是别的东西。在import 之后,看看help(path) 是怎么说的——可能会有一些你想要的东西。

标签: python string python-2.7 path


【解决方案1】:

从 python 3.4 开始:

from pathlib import Path
str_path = "my_path"
path = Path(str_path)

https://docs.python.org/3/library/pathlib.html#module-pathlib

【讨论】:

    【解决方案2】:

    也许这个答案适用于 python 2.7,如果你使用的是 Python 3,我喜欢:

    import os
    
    p = "my/path/to/file.py"
    os.path.normpath(p)
    'my\\path\\to\\file.py'
    

    【讨论】:

      【解决方案3】:

      如果path.path 代表一种类型,您可能可以使用以下内容创建该类型的实例:

      string_path = "/path/to/some/file"
      the_path = path.path(string_path)
      save_config(the_path()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-14
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 2019-10-01
        • 2010-10-13
        • 2014-01-28
        • 2011-05-09
        相关资源
        最近更新 更多