Форум сайта python.su
0
Программа должна вывести только файлы .txt в данной директории
import os nesort=os.listdir() sort=[] for element in nesort: if ".txt" in nesort: sort.append(element) print (sort)
Офлайн
1
Во первых:
os.listdir(path)
for element in nesort: if ".txt" in element: sort.append(element)
Отредактировано malya (Ноя. 20, 2013 10:29:39)
Офлайн
0
malyaНе понял. Что значит явно? Он вроде в директории по умолчанию ищет. По крайней мере, если сделать так:
нужно явно указать путь к дтректории.
import os nesort=os.listdir() print (nesort)
>>> ['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'tcl', 'test.py', 'Tools', 'w9xpopen.exe']
Офлайн
33
malya
Во первых:
malya
Во вторых:
filter(lambda x: x.endswith('.txt'), os.listdir(path))
Офлайн
7
И в четвёртых - есть ещё либы fnmatch и glob, там ещё проще
Офлайн
1
ChizelPython listdir
Не понял. Что значит явно? Он вроде в директории по умолчанию ищет. По крайней мере, если сделать так:
import os print os.listdir()
Traceback (most recent call last):
File "test.py", line 4, in <module>
print os.listdir()
TypeError: listdir() takes exactly 1 argument (0 given)
Отредактировано malya (Ноя. 20, 2013 16:33:29)
Офлайн
33
malya
По крайней мере в Линухе:
Отредактировано Budulianin (Ноя. 20, 2013 21:11:36)
Офлайн