gpt4 book ai didi

python - 将字符串文字中的双反斜杠替换为单反斜杠

转载 作者:行者123 更新时间:2023-12-01 03:12:08 25 4
gpt4 key购买 nike

我正在尝试打印一个包含双反斜杠(一个反斜杠转义另一个)的字符串,以便只打印其中一个反斜杠。我以为这会自动发生,但我一定错过了一些细节。

我有这个小片段:

for path in self.tokenized:
pdb.set_trace()
print(self.tokenized[path])

当我使用 pdb.set_trace() 进行调试时,我可以看到我的字符串有双反斜杠,然后我输入 continue 来打印其余部分,它会打印相同的内容。

> /home/kendall/Development/path-parser/tokenize_custom.py(82)print_tokens()
-> print(self.tokenized[path])
(Pdb) self.tokenized[path]
['c:', '\\home', '\\kendall', '\\Desktop', '\\home\\kendall\\Desktop']
(Pdb) c
['c:', '\\home', '\\kendall', '\\Desktop', '\\home\\kendall\\Desktop']

请注意,我正在编写一个解析器来解析 Windows 文件路径——即反斜杠。

这是运行该程序的样子:

kendall@kendall-XPS-8500:~/Development/path-parser$ python main.py -f c:\\home\\kendall\\Desktop

最佳答案

您遇到的问题是您正在打印列表,该列表只知道一种字符串化其内容的方法:reprrepr 仅供调试使用。习惯上,如果可能的话(类是一个值得注意的异常(exception)),它会输出一个语法上有效的 python 表达式,可以直接将其输入到解释器中以重现原始对象 - 因此会出现转义的反斜杠。

相反,您需要循环遍历每个列表,并单独打印每个字符串。

您可以使用 str.join() 来为您执行此操作。

要获得完全相同的输出,减去双反斜杠,您需要执行以下操作:

print("[{0}]".format(", ".join(self.tokenized[path])))

关于python - 将字符串文字中的双反斜杠替换为单反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42794709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com