【问题标题】:Copying paths to python [closed]将路径复制到python [关闭]
【发布时间】:2020-11-23 08:04:39
【问题描述】:

有什么方法可以复制 Windows 上已经没有反斜杠的路径“”并附带正常的“/”,这样我就不需要每次都将 1 更改为 1?

如果没有,有没有办法让python理解字符串中的反斜杠?

地址栏复制的路径:

print("C:\Users\USER\Documents")

我打算得到的路径:

print("C:/Users/USER/Documents")

或者甚至用这个双斜杠:

print("C:\\Users\\USER\\Documents")

【问题讨论】:

  • 你能澄清你想从哪里复制文件路径(例如文件资源管理器)?在 python 中处理文件路径的最佳方法是通过pathlib 处理 windows 和 linux 文件路径,包括文件名分隔符
  • 去查找那个库,谢谢!但是,是的,我打算从文件资源管理器中复制。

标签: python windows path


【解决方案1】:

Windows 不支持您要获取的路径 (C:/Users/USER/Documents)。据我所知,它用于 MacOS 或 Linux。

【讨论】:

    【解决方案2】:

    您只需要处理从strrepr 的转换:

    >>> a = r'C:\Users\USER\Documents'
    >>> print(a)
    C:\Users\USER\Documents
    >>> b = '%r' %a
    >>> print(b)
    'C:\\Users\\USER\\Documents'
    

    请记住,ab 并不完全相同,但它们都打印为字符串。看有趣的explanation

    但是,如果您需要将该文件名用作变量,最好的方法是使用os.pathpathlib,它们都是python 标准库的一部分,请参阅here

    您可以简单地将您从文件资源管理器中获得的文件名作为字符串传递:

    from pathlib import Path
    filename = Path(r"C:\Users\USER\Documents")
    

    如果您想获取带有双反斜杠的路径,您可以使用文件名表示 (repr):

    >>> b = "%r" % filename.name
    >>> print(b)
    'C:\\Users\\USER\\Documents'
    

    【讨论】:

      【解决方案3】:

      在 Windows 中工作的最佳格式是使用// 而不是/

      print("C:\user\USER\Documents".replace('\', '\\')

      【讨论】:

        【解决方案4】:

        括号和倒括号是指斜线吗?如果你想获得从“C:\Users\USER\Documents”到“C:/Users/USER/Documents”的路径,我会使用 str.replace 方法。如"C:\Users\USER\Documents".replace("\\", "/")

        【讨论】:

        • 是的,我的意思是斜线,已经编辑过了。我是编程新手,所以我不知道这个 .replace() 函数。谢谢!
        • 这不是处理文件名的最佳方式。建议使用os.pathpathlib。此外,您可以在对该问题的评论中提出这个问题。
        猜你喜欢
        • 1970-01-01
        • 2012-10-15
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多