In generale è piuttosto usuale chiamare la directory di primo livello con lo stesso nome del programma e usare lo stesso nome,  (con un'estensione appropriata),  per la parte "principale" in alto file di livello. Alcune catene di strumenti avevano anche la tendenza a mettere il main in un file con estensione e quindi tutti i file di livello inferiore in una directory con lo stesso nome. 
 Trovo che la maggior parte degli strumenti  e sicuramente l'OS  non si preoccupino molto di ciò che i file e gli ampli; le directory sono chiamate,  all'interno di alcuni vincoli,  ma per evitare problemi a tutte le directory & i nomi dei file devono essere lettere ASCII e numeri più eventualmente i caratteri + -_  evitare tutti gli spazi in modo da non doverli citare o sfuggire  e altri caratteri come & < > | / come hanno significati speciali su alcune piattaforme. Inoltre, non fare affidamento sulla piattaforma che fa distinzione tra maiuscole e minuscole o insensibile,  i.e. Va bene usare case per distinguere parti di nomi come MyFileName ma non avere un altro file chiamato myFileName e usare le maiuscole corrispondenti ovunque . 
 Personalmente mi piace la pratica e l'ampli del pitone; la magia di avere una directory che incapsula un modulo e ha il nome del modulo che contiene un file "principale" chiamato   __main__.py    che definisce il comportamento quando viene invocato il modulo,  (usando   python -m modulename   ),  e un altro chiamato   __init__.py    che,  hai indovinato , esegue tutte le operazioni di inizializzazione su   import    in quanto è immediatamente chiaro cosa fanno questi file e appaiono per primi nell'elenco delle directory sulla maggior parte dei sistemi. 
  Le cose principali sono chiarezza e coerenza organizzativa.  Queste sono le cose che permettono alle persone di fare il loro lavoro facilmente - un odio verso gli animali domestici è quando guardo il codice di qualcuno, (anche il mio) e devo   grep main    per trovare i punti di ingresso.