Rob,
I wrote a script to aide library workers with shelf reading. This
Python script takes an LC call, breaks it into pieces, assigns each
piece to a variable, and "looks" at each piece to determine if it is a
string, integer, or float.
GitHub: https://github.com/pjomara/shelfReader
The script does more than parse call numbers; the "call_parser" and
"splitter" functions are relevant to the need described in your post.
If this suits your need, please let me know if you have questions.
Parker O'Mara
On 8/28/2015 11:03 AM, Rob Dumas wrote:
Several years ago, I wrote a simple report generator for MPOW which broke
down our daily list of items to send to other branches into separate
reports. I'm looking to refactor it and one of my big targets is to make
the collection/call number smarter.
Right now, it treats an LC call number as a simple string, so I can do some
simple searches against it (e.g., "coll. HERITAGE", call number starts with
"P"), but this has some limitations. For example, when I select a range, I
can't sort by the numeric part, which means that an item PN6728 will appear
in the list before an item from PN704.
Does anyone know of a decent script (preferably Python or Ruby) which will
break the call number down into an array (or other set) of values (e.g.,
PN6728.S4546F73 2015 v.2 coll. GRAPHICNOVELS would become ["PN", 6728, "S",
4546, "F", 73, 2015, "2", "GRAPHICNOVELS"])? This way, I could have
granular control over sorting by call number.
---
Rob D.
[email protected]
--
Parker O'Mara, Systems Librarian, SUNY Plattsburgh, (518) 564-5196