Python: 如何从 Path 对象中获取双反斜杠

Python: How to get double backslash from Path object

我正在使用 pathlib Path 模块来存储我的几个程序的路径。问题是,当我去使用这个变量时,我最终得到了一个错误,因为 \ 变成了 \,系统将其解释为一个特殊字符。我的理解是,根据 OS,Path 模块会相应地处理这个问题。 (我正在使用 Windows)

这是我的代码的重现:

from pathlib import Path

def get_dictionary():
    path1 = Path("C:\Programs\program1")
    path2 = Path("C:\Programs\program2")
    path3 = Path("C:\Programs\program3")
    path4 = Path("C:\Programs\program4")

    info = {
        "program1" : str(path1),
        "program2" : str(path2),
        "program3" : str(path3),
        "program4" : str(path4)
    }

    return info

if __name__ == "__main__":
    theInfo = get_dictionary()
    print(theInfo['program1'])
    print(theInfo['program2'])
    print(theInfo['program3'])
    print(theInfo['program4'])

    print(theInfo)

控制台输出如下:

C:\Programs\program1
C:\Programs\program2
C:\Programs\program3
C:\Programs\program4
{'program1': 'C:\Programs\program1', 'program2': 'C:\Programs\program2', 'program3': 
'C:\Programs\program3', 'program4': 'C:\Programs\program4'}

所以我的问题是:假设我想使用 theInfo['program1']。我得到 C:\Programs\program1 但我需要得到 C:\Programs\program1。我该怎么做呢?感谢您的帮助!

编辑:我从字典中得到的值被放置在一个字符串中,该字符串最终成为 Tcl 文件中的一行。例如我有一个函数,我写:

f"puts {theInfo['program1']}"

我期望的位置:

puts C:\Programs\program1

但我得到:

puts C:\Programs\program1

对于其他字符,这将解释为制表符、换行符等...

这个现象是由Escape character '\'引起的,如果你真的希望转义数据是C:\Programs\program1,你可以拆分路径然后加入\\.

In [4]: data = 'C:\Programs\program1'

In [5]: data
Out[5]: 'C:\Programs\program1'

In [6]: print(data)
C:\Programs\program1

In [7]: new_data = 'C:\\Programs\\program1'

In [8]: new_data
Out[8]: 'C:\\Programs\\program1'

In [9]: print(new_data)
C:\Programs\program1

In [21]: p = '\\'.join(("C:\Programs\program1").split('\'))

In [22]: p
Out[22]: 'C:\\Programs\\program1'

In [23]: print(p)
C:\Programs\program1