È possibile visualizzare file con determinate estensioni con il comando os.listdir? Voglio che funzioni, in modo che possa mostrare solo file o cartelle con .f alla fine. Ho controllato la documentazione e non ho trovato nulla, quindi non chiedere.Python: alternativa os.listdir/alcune estensioni
risposta
glob
è bravo in questo:
import glob
for f in glob.glob("*.f"):
print f
Non chiedere cosa?
[s for s in os.listdir() if s.endswith('.f')]
Se si desidera controllare un elenco di estensioni, si potrebbe fare la generalizzazione ovvia,
[s for s in os.listdir() if s.endswith('.f') or s.endswith('.c') or s.endswith('.z')]
o quest'altro modo è un po 'più corto di scrivere:
[s for s in os.listdir() if s.rpartition('.')[2] in ('f','c','z')]
Ci sono un sacco di cose che sono funzione esplicita chiamate in altre lingue che vengono sostituiti dalle operazioni incorporati in Python. È difficile tenere traccia a volte. Ad esempio, i vari modelli di adattatore nella libreria standard C++ sono semplicemente 'lambda' in Python. È una delle cose che preferisco di Python. –
"Non chiedere" significa "non chiedermelo", hai controllato la documentazione, cosa ha detto? "" –
@Ned: ho pensato che fosse una domanda a metà retorica. –
[s for s in os.listdir() if os.path.splitext(s) == 'f']
Questo dovrebbe essere 'os.path.splitext (s) [1] == '.f''. – Philipp
C'è un'altra possibilità non menzionata finora:
import fnmatch
import os
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*.f'):
print file
In realtà questo è il modo è implementato il modulo glob
, quindi in questo caso glob
è più semplice e meglio, ma il modulo fnmatch
può essere utile in altri situazioni, ad es quando si fa un attraversamento dell'albero usando os.walk
.
Prova questo:
from os import listdir
extension = '.wantedExtension'
mypath = r'my\path'
filesWithExtension = [ f for f in listdir(mypath) if f[(len(f) - len(extension)):len(f)].find(extension)>=0 ]
- 1. python win32 estensioni documentazione
- 2. Estensioni Python e OpenMP C
- 3. Estensioni Python per compilazione incrociata
- 4. Alternativa di Python all'applet Java?
- 5. Open source Enthought Python alternativa
- 6. estensioni SWIG di debug per Python
- 7. Python eliminazione di alcune estensioni di file
- 8. Utilizzo di estensioni con selenio (Python)
- 9. Estensioni di Python di profilatura C
- 10. Estensioni/moduli C di Python nidificati?
- 11. Python - Loop dei file di determinate estensioni
- 12. Debug di Python con estensioni compilate
- 13. Python più veloce alternativa al dizionario?
- 14. Alternativa di Python a R Markdown
- 15. quando usare una distribuzione alternativa di Python?
- 16. Alternativa all'assegnazione di una stringa di Python
- 17. Python 3.x: implementazione dell'impronta alternativa
- 18. Alternativa PHP per il tessuto di Python
- 19. Processo Python biforcuto da NodeJS - Alternativa a process.send() per Python?
- 20. Alternativa a Firebug per Firefox?
- 21. Esecuzione di Selenium WebDriver utilizzando Python con estensioni (file .crx)
- 22. SQLAlchemy con Python 3.2: le estensioni C non sono supportate?
- 23. Come utilizzare le estensioni C in python per aggirare GIL
- 24. Contare il numero di file con determinate estensioni in Python
- 25. È possibile creare estensioni a python/php/perl con Go?
- 26. xkcd: Estensioni
- 27. Perché le varie estensioni JPEG?
- 28. Operazioni preliminari su estensioni thunderbird
- 29. Supporto per Python 2 e 3: str, byte o alternativa
- 30. Installazione di python con estensioni python win32 su un'unità di rete
+1 buona idea, che non mi era mai venuta in mente. –
+1 wow, è stato di grande aiuto! Ma non possiamo semplicemente stampare (glob.glob ("*. Py"))? – Galilsnap
Puoi farlo, glob.glob restituisce un elenco, fai quello che vuoi con esso. –