How to test for maildir 'folder' in Python?

Chris Green cl at isbd.net
Sun Jan 23 07:55:20 EST 2022


Barry Scott <barry at barrys-emacs.org> wrote:
> 
> 
> > On 22 Jan 2022, at 21:26, Chris Green <cl at isbd.net> wrote:
> > 
> > I have a script that walks a quite deep tree of mail messages to find
> > and archive old messages.  I'm trying to convert it from mbox to
> > maildir (as I now store my mail in maildir format).
> > 
> > So I need to test whether a point I have reached in the hierarchy is a
> > maildir mailbox or not.  Using mbox format it's easy because 'folders'
> > are directories and mailboxes are files.  However with maildir the
> > 'folders' have directories within them so the simple tree walking goes
> > down a level too far and finds 'folders' which aren't mailboxes called
> > 'cur', 'new' and 'tmp'.
> > 
> > Is there any 'ready made' way in python to tell whether a directory is
> > a maildir mailbox?  If not I suppose I'll simply have to check if
> > there are 'cur', 'new' and 'tmp' directories within the directory
> > which may or may not be a maildir.
> 
> You do not need to walk the tree.
> 
> The structure is 
>         Maildir/cur, new, tmp - The INBOX
>         Maildir/<encoded-mail-folder>/cur, new, tmp
> 
> The encoding prefixed with a "." and uses a "." between folder name parts.
> 
> An example from my Maildir is ".Python.Users/" for a folder that client
> shows as Python/Users
> 
> You can see this by doing:
> 
>          ls -a ~/Maildir
> 
You're talking about one specific (and IMHO not very good) way of
creating a maildir hierarchy.  Here's what I see on my system:-

    chris at esprimo$ cd mail
    /home/chris/mail
    chris at esprimo$ ls -a
    .  ..  Gm  In  Ju  Li  Tm  folder
    chris at esprimo$ ls -a folder
    .         apexLodge     entertainment  greville  houseHome  maxMum    reshapers  tractor
    ..        archive       family         hardware  internet   money     riding     travel
    Scans     boating       france         health    isbd       pcc       software   ukraa
    Shopping  buySellAdmin  friends        holidays  jrml       personal  telecoms   vehicles
    chris at esprimo$ ls -a folder/Shopping
    .          cabin       cycling      garden     maxine      pets         stationery
    ..         car         diy          giftsEtc   maxmum      photography  telecoms
    apexLodge  clothesEtc  electrical   groupon    medicine    riding       toolstation
    boat       computer    electronics  houseHome  motorcycle  screwfix
    books      cpc         food         jrml       music       sportsEtc

No dot prefixes and my maildir hierarchy is a *real* directory hierarchy so
all the other file management utilities on my system can be used easily.



-- 
Chris Green
·


More information about the Python-list mailing list