Hi, I am trying to use eval in Python 2.0. I am trying to use reo.sub() and a method that compiles and eval()'s some code from a text file to perform flexible replacements. Unfortunately, I see a TypeError in string.py: Traceback (most recent call last): File "test.py", line 27, in ? reo.sub(subClass.subFN, str); File "/s/python-2.0.0//lib/python2.0/sre.py", line 115, in _sub return _subn(pattern, template, string, count)[0] File "/s/python-2.0.0//lib/python2.0/sre.py", line 140, in _subn return _join(s, string[:0]), n File "/s/python-2.0.0//lib/python2.0/sre.py", line 89, in _join return string.join(seq, sep[:0]) File "/s/python-2.0.0//lib/python2.0/string.py", line 129, in join return sep.join(words) TypeError: sequence item 1: expected string, None found I cannot figure out why this is happening. If I print out the eval() of the compiled code, I see "None" displayed. So, the eval() is not returning what I would expect. I'm pretty much at wit's end with this. (Maybe I am too sleep deprived to see the real problem. :) I would like to know what I am doing wrong, but I am ready to abandon this. If anyone would be kind to tell me what I am doing wrong, I would greatly appreciate any help. Here's the smallest piece of Python code that reproduces the problem: -------------------- #!/s/std/bin/env python import copy; import re; class SubstituteClass: """ """ __path = None; __newStr = None; def __init__(self, path): self.__path = copy.deepcopy(path); def subFN(self, matchObj): expr = matchObj.group('expr'); compObj = compile(expr, '<string>', 'exec'); return eval(compObj, {'path':self.__path}); FO = open("test.txt", "r"); str = FO.read(); reo = re.compile("\<(?P<expr>.+?)\>"); subClass = SubstituteClass("somePath/thatIsNotBogus.config"); reo.sub(subClass.subFN, str); -------------------- Here's the file test.txt that is read in by the Python code: -------------------- error = results/cache/<import re; re.sub("config", "barnes.error", path);> -------------------- Notice the embedded Python code in test.txt. Thanks, Brian ----- www.cs.wisc.edu/~bforney ubi caritas et amor
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4