cleaning up an ASCII file?

Nick Matzke matzke at
Wed Jun 10 20:52:09 EDT 2009

Apologies, I figured there was some easy, obvious solution, since there 
is in BBedit.  I will explain further...

John Machin wrote:
> On Jun 11, 6:09 am, Nick Matzke <mat... at> wrote:
>> Hi all,
>> So I'm parsing an XML file returned from a database.  However, the
>> database entries have occasional non-ASCII characters, and this is
>> crashing my parsers.
> So fix your parsers. google("unicode"). Deleting stuff that you don't
> understand is an "interesting" approach to academic research :-(

Not if it's just weird versions of dash characters and umlauted 
characters the like, which is what I bet it is.  Those sorts of things 
and the apparent inability of lots of email readers and websites to deal 
with them have been annoying me for years, so I tend to move straight 
towards genocidal tactics when I detect their presence.

(My database source is GBIF, they get museum specimen submissions from 
around the planet, there are zillions of records, I am just a user, so 
fixing it on their end is not a realistic option.)

> Care to divulge what "crash" means? e.g. the full traceback and error
> message, plus what version of python on what platform, what version of
> ElementTree or other XML spftware you are using ...

All that is fine, the problem is actually when I try to print to screen 
in IPython:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in 
position 293: ordinal not in range(128)

Probably this is the line in the file which is causing problems (as 
displayed in BBedit):


This document contains data shared through the GBIF Network - see for more information.
All usage of these data must be in accordance with the GBIF Data Use 
Agreement - see

Please cite these data as follows:

Jyväskylä University Museum - The Section of Natural Sciences, 
Vascular plant collection of Jyvaskyla University Museum (accessed 
through GBIF data portal,, 
Missouri Botanical Garden, Missouri Botanical Garden (accessed through 
GBIF data portal,, 2009-06-11)
Museo Nacional de Costa Rica, herbario (accessed through GBIF data 
portal,, 2009-06-11)
National Science Museum, Japan, Kurashiki Museum of Natural History 
(accessed through GBIF data portal,, 2009-06-11)
The Swedish Museum of Natural History (NRM), Herbarium of Oskarshamn 
(OHN) (accessed through GBIF data portal,, 2009-06-11)
Tiroler Landesmuseum Ferdinandeum, Tiroler Landesmuseum Ferdinandeum 
(accessed through GBIF data portal,, 2009-06-11)
UCD, Database Schema for UC Davis [Herbarium Labels] (accessed through 
GBIF data portal,, 2009-06-11)


Presumably "Jyväskylä University Museum" is the problem since 
there are umlauted a's in there. (Note, though, that I have thousands of 
records to parse, so there is going to be all kinds of other umlauted & 
accented stuff in these sorts of search results.

So the goal is to replace the characters with un-umlauted versions or 
some such.


PS: versions I am using:
nick$ python -V
Python 2.5.2 |EPD Py25 4.1.30101|

>> Center for Theoretical Evolutionary Genomics
> If your .sig evolves much more, it will consume all available
> bandwidth in the known universe and then some ;-)

...its easier to have a big sig than to try and remember all that stuff 

Nicholas J. Matzke
Ph.D. Candidate, Graduate Student Researcher
Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley

Lab websites:
Dept. personal page:
Lab personal page:
Lab phone: 510-643-6299
Dept. fax: 510-643-6264
Cell phone: 510-301-0179
Email: matzke at

Mailing address:
Department of Integrative Biology
3060 VLSB #3140
Berkeley, CA 94720-3140

"[W]hen people thought the earth was flat, they were wrong. When people 
thought the earth was spherical, they were wrong. But if you think that 
thinking the earth is spherical is just as wrong as thinking the earth 
is flat, then your view is wronger than both of them put together."

Isaac Asimov (1989). "The Relativity of Wrong." The Skeptical Inquirer, 
14(1), 35-44. Fall 1989.

More information about the Python-list mailing list