Dan Guido wrote:
This doesn't give me quite the results I expected, so I'll have to
take a closer look at my project as a whole tomorrow. The test cases
clearly show the need for all the fancy parsing I'm doing on the path
though.

Looks like I'll return to this tomorrow and post an update as
appropriate. Thanks for the help so far!
--
Dan Guido



On Wed, Oct 21, 2009 at 5:34 PM, Terry Reedy <tjre...@udel.edu> wrote:
Dan Guido wrote:
Hi Diez,

The source of the string literals is ConfigParser, so I can't just
mark them with an 'r'.
Python string literals only exist in Python source code. Functions and
methods only return *strings*, not literals.  If you mistakenly put the
str() representation of a string (such as print gives you) into source code,
rather than the repr() output, then you may have trouble.

tjr

--
http://mail.python.org/mailman/listinfo/python-list


For none of your test data does raw() change anything at all. These strings do *not* need escaping.

Now some of the other things you do are interesting:

1) \??\ - presumably you're looking for a "long UNC." But that's signaled by \\?\ It's used to indicate to some functions that filenames over about 260 bytes are permissible.

2) The line:

   if expanded[:8] == "system32" or "syswow64":

doesn't do what you think it does. it'll always evaluate as true, since == has higher priority and "syswow64" is a non-empty string. If you want to compare the string to both, you need to expand it out:

   either  if expanded[:8] == "system32"  or  expanded[:8] == "syswow64"
        or simpler:
    if expanded.startswith("system32") or  expanded.startswith("syswow64"):

3) removing a leading backslash should imply that you replace it with the current directory, at least in most contexts. I'm not sure what's the right thing here.



DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to