Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 20, 2013 09:34:24

Chizel
Зарегистрирован: 2013-11-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

не выводит список

Программа должна вывести только файлы .txt в данной директории

import os
nesort=os.listdir()
sort=[]
for element in nesort:
    if ".txt" in nesort:
        sort.append(element)
print (sort)
На деле же выводит просто , в чем проблема?

Офлайн

#2 Ноя. 20, 2013 10:26:29

malya
От:
Зарегистрирован: 2012-01-11
Сообщения: 49
Репутация: +  1  -
Профиль   Отправить e-mail  

не выводит список

Во первых:

os.listdir(path)
- нужно явно указать путь к дтректории.

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



Отредактировано malya (Ноя. 20, 2013 10:29:39)

Офлайн

#3 Ноя. 20, 2013 10:46:32

Chizel
Зарегистрирован: 2013-11-07
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

не выводит список

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']

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

Офлайн

#4 Ноя. 20, 2013 11:57:15

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

не выводит список

malya
Во первых:
malya
Во вторых:

В-третьих:
 filter(lambda x: x.endswith('.txt'), os.listdir(path))



Офлайн

#5 Ноя. 20, 2013 12:40:17

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

не выводит список

И в четвёртых - есть ещё либы fnmatch и glob, там ещё проще



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#6 Ноя. 20, 2013 16:32:42

malya
От:
Зарегистрирован: 2012-01-11
Сообщения: 49
Репутация: +  1  -
Профиль   Отправить e-mail  

не выводит список

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



Отредактировано malya (Ноя. 20, 2013 16:33:29)

Офлайн

#7 Ноя. 20, 2013 21:11:00

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

не выводит список

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

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

У ТС Python 3.x



Отредактировано Budulianin (Ноя. 20, 2013 21:11:36)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version