Показать все имена файлов из определенной папки - PullRequest
0 голосов
/ 22 мая 2009

Как, например, есть папка, скажем, XYZ, которая содержит файлы с различным форматом. скажем, файл .txt, файл excel, файл .py и т. д. я хочу отобразить в выходной файл все имя файла с использованием программирования Python

Ответы [ 3 ]

3 голосов
/ 22 мая 2009
2 голосов
/ 22 мая 2009

Вот пример, который также может помочь показать некоторые полезные основы Python - dicts {}, списки [], маленькие строковые техники (split), модуль типа os и т. Д .:

bvm@bvm:~/example$ ls
deal.xls    five.xls  france.py  guido.py    make.py      thing.mp3  work2.doc
example.py  four.xls  fun.mp3    letter.doc  thing2.xlsx  what.docx  work45.doc
bvm@bvm:~/example$ python
>>> import os
>>> files = {}
>>> for item in os.listdir('.'):
...     try:
...             files[item.split('.')[1]].append(item)
...     except KeyError:
...             files[item.split('.')[1]] = [item]
... 
>>> files
{'xlsx': ['thing2.xlsx'], 'docx': ['what.docx'], 'doc': ['letter.doc', 
'work45.doc', 'work2.doc'], 'py': ['example.py', 'guido.py', 'make.py', 
'france.py'], 'mp3': ['thing.mp3', 'fun.mp3'], 'xls': ['five.xls',
'deal.xls', 'four.xls']}
>>> files['doc']
['letter.doc', 'work45.doc', 'work2.doc']
>>> files['py']
['example.py', 'guido.py', 'make.py', 'france.py']

Для вашего вопроса об обновлении вы можете попробовать что-то вроде:

>>> for item in enumerate(os.listdir('.')):
...     print item
... 
(0, 'thing.mp3')
(1, 'fun.mp3')
(2, 'example.py')
(3, 'letter.doc')
(4, 'five.xls')
(5, 'guido.py')
(6, 'what.docx')
(7, 'work45.doc')
(8, 'deal.xls')
(9, 'four.xls')
(10, 'make.py')
(11, 'thing2.xlsx')
(12, 'france.py')
(13, 'work2.doc')
>>>
1 голос
/ 22 мая 2009
import os

XYZ = '.'

for item in enumerate(sorted(os.listdir(XYZ))):
    print item
...