3

我知道这里有一个类似的问题,但我有一个不同的问题。

我在插件中有一些代码文件,但插件使用只有软件知道的内部路径,所以我无法访问该路径以将其与execfile.

但是有一个名为 的内部 python 函数readInternalFile (path),我可以在其中使用这个内部路径并将这个文件的内容作为字符串返回。

所以我想我可以使用标准的python函数exec,但是一旦我这样做,它就会抱怨第一行是'\r\n'。

我怎样才能解决这个问题?我打印数据readInternalFile返回的类型,它是str,所以一切都应该没问题,对吧?

文件中的代码自行工作,没有语法错误等。

4

1 回答 1

0
s1 = readInternalFile(path)
statements = s1.split("\r\n")
for stmt in statements:
    exec(stmt)

应该管用

>>> s1 = "a=32\r\nb=a+5\r\nprint b"
>>> statements = s1.split("\r\n")
>>> for stmt in statements:
...    exec(stmt)
...
37
>>>

或者你可以用“;”替换结束线 像这样

>>> s1 = "a=32\r\nb=a+5\r\nprint b"
>>> s2 = s1.replace("\r\n",";")
>>> exec(s2)
37

我还应该提到,通常使用 exec 是一个坏主意......

如果您切换结束行编码,这也会中断....

于 2012-07-27T21:02:47.960 回答