我正在尝试使用 eval 将表示文件路径列表的字符串转换为实际列表。
但是,在我看来, eval 毁了这条路。请参阅以下代码:
在 Pycharm Python 控制台中执行的代码
>>> _path = '["c:\\path\\to\\knowwhere"]'
>>> eval(_path)
['c:\\path\to\\knowwhere']
如上所示,eval 过程删除了一个
'\'
,使其成为字符串中的制表符,因此无法找到该文件。
有什么办法可以解决这个问题还是我在某个地方犯了错误?
注意:
ast.literal_eval()
也一样。
我使用的是最新的Python3.10,以及Pycharm IDE
问候
如果您有这样做,请使用原始字符串:
>>> _path = '[r"c:\\path\\to\\knowwhere"]'
>>> mylist = eval(_path)
>>> print(mylist[0])
c:\path\to\knowwhere
但是,如果你正确地写出路径列表,你会睡得更好(不要用一个
print
打印列表,使用循环来打印每条路径),这样你就可以用 readlines()
读回它们并完全避免评估。