Найти - Пользователи
Полная версия: не выводит список
Начало » Python для новичков » не выводит список
1
Chizel
Программа должна вывести только файлы .txt в данной директории
import os
nesort=os.listdir()
sort=[]
for element in nesort:
    if ".txt" in nesort:
        sort.append(element)
print (sort)
На деле же выводит просто , в чем проблема?
malya
Во первых:
os.listdir(path)
- нужно явно указать путь к дтректории.

Во вторых:
for element in nesort:
    if ".txt" in element:
        sort.append(element)
- искать ‘.txt’ нужно в элементе, а не в списке (зачем тогда цикл)
Chizel
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']

По поводу второго, спасибо, невнимателен я был, в голове одно, а пишу другое
Budulianin
malya
Во первых:
malya
Во вторых:

В-третьих:
 filter(lambda x: x.endswith('.txt'), os.listdir(path))
Master_Sergius
И в четвёртых - есть ещё либы fnmatch и glob, там ещё проще
malya
Chizel
Не понял. Что значит явно? Он вроде в директории по умолчанию ищет. По крайней мере, если сделать так:
Python 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)

P.S. Python 2.7

Budulianin
malya
По крайней мере в Линухе:

Ось вообще здесь ни при чём

У ТС Python 3.x
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB