Python 错误地评估“eval”窗口路径

问题描述 投票:0回答:1

我正在尝试使用 eval 将表示文件路径列表的字符串转换为实际列表。

但是,在我看来, eval 毁了这条路。请参阅以下代码:

在 Pycharm Python 控制台中执行的代码

>>> _path  = '["c:\\path\\to\\knowwhere"]'
>>> eval(_path)
['c:\\path\to\\knowwhere']

如上所示,eval 过程删除了一个

'\'
,使其成为字符串中的制表符,因此无法找到该文件。

有什么办法可以解决这个问题还是我在某个地方犯了错误?

注意:

ast.literal_eval()
也一样。

我使用的是最新的Python3.10,以及Pycharm IDE

问候

python python-3.x windows eval
1个回答
0
投票

如果您这样做,请使用原始字符串:

>>> _path  = '[r"c:\\path\\to\\knowwhere"]'
>>> mylist = eval(_path)
>>> print(mylist[0])
c:\path\to\knowwhere

但是,如果你正确地写出路径列表,你会睡得更好(不要用一个

print
打印列表,使用循环来打印每条路径),这样你就可以用
readlines()
读回它们并完全避免评估。

© www.soinside.com 2019 - 2024. All rights reserved.