I'm using versions 2.5.2 and 2.5.1 of python and have encountered a
potential bug. Not sure if I'm misunderstanding the usage of the strip
function but here's my example.
var = "detail.xml"
print var.strip(".xml") ### expect to see 'detail', but get 'detai'
var = "overview.xml"
print var.strip(".xml") ### expect and get 'overview'
.strip() takes a *set* of characters to remove, as many as are found:
_______ _____
>>> 'xqxqxqxyxxyxqxqx'.strip('xq')
'yxxy'
Using .replace() may work, but might have some odd side effects:
>>> 'something.xml.zip'.replace('.xml')
'something.zip'
>>> 'this file has .xml in its name.xml'.replace('.xml')
'this file has in its name'
This also has problems if your filename and extension differ in
case (removing ".xml" from "file.XML")
If you want to remove the extension, then I recommend using the
python builtin:
>>> import os
>>> results = os.path.splitext('this has .xml in its name.xml')
>>> results
('this has .xml in its name', '.xml')
>>> fname, ext = results
Or, if you know what the extension is:
>>> fname = 'this file has .xml in its name.xml'
>>> ext = '.xml'
>>> fname[:-len(ext)]
'this file has .xml in its name'
Just a few ideas that are hopefully more robust.
-tkc
--
http://mail.python.org/mailman/listinfo/python-list