
b0g3r
14.10.2016
17:56:46
потому что тут насоветовали

Eugene
14.10.2016
17:59:55
Мне кажется есть на сайте кмски отличный how to
Хд

b0g3r
14.10.2016
18:00:58
проблема решена

Google

b0g3r
14.10.2016
18:00:59
Т.е. я проебался несколько часов просто потому, что чувак вставил картинку шаблона, а не того, что получается на самом деле?)
в статье неправильная пикча просто
а так у человека всё работало как часики

Eugene
14.10.2016
18:03:20
Апхахапх

Lisa
14.10.2016
18:03:49
то есть скрипты и картинки работали, их просто не было в сборке по умолчанию?

b0g3r
14.10.2016
18:04:05
всё работало, просто человека смутило отсутствие целого куска странички

Lisa
14.10.2016
18:05:11
ну css очевидно имеется )

b0g3r
14.10.2016
18:05:27
угу)

Artem
14.10.2016
18:09:45
У кого там есть акк на хабре, накидайте парню минусов ??
Всем спасибо)

b0g3r
14.10.2016
18:10:14
я ему отпишусь сейчас

87776
14.10.2016
18:41:41
чуваки
у меня чет опять беды на изи проблемах
вот есть список

Google

87776
14.10.2016
18:42:31
['qqq.www', 'gtt.tg', 'dd.rrr']
как бы так условие написать
чтоб смысл был такой что if '*.tg' in array:
типа у меня там цикл на цикле и я хочу как-то красиво это сделать
через лямбду может как-то

b0g3r
14.10.2016
18:45:30
сделай отдельную функцию)

Ssi
14.10.2016
18:45:41
да пройдись по циклу и сматчи с регеспом

b0g3r
14.10.2016
18:46:01
но вообще без re проверка такая - str.split('.')[-1] == 'tg'

Ssi
14.10.2016
18:46:25
ну, да. Или так

Pavel
14.10.2016
18:46:48
if any(item.endswith(".tg") for item in array):

b0g3r
14.10.2016
18:47:40
ух ты)
а я что-т совсем забыл про endswith)

87776
14.10.2016
18:48:36

b0g3r
14.10.2016
18:49:22
ну вообще выглядит не очень извращенно)

87776
14.10.2016
18:50:27
в моем коде так себе

Ssi
14.10.2016
18:52:47
while ?
а там не if нужен?

87776
14.10.2016
18:53:08
ну я потом убиваю этот файл

Google

87776
14.10.2016
18:54:05
бля, начал чинить все сломалось
я как будто на css пишу а не питоне

Ssi
14.10.2016
18:54:57
т.е. внутри вайла у тебя подменяется path?

87776
14.10.2016
18:56:03
сейчас я починю

Ssi
14.10.2016
18:56:07
да и потом. Ты же всё равно идёшь по списку for'ом

Artem
14.10.2016
18:56:11
Зачем ты вначале пишешь проверку на any, а потом еще раз итерируешься по этому всему
Заново

87776
14.10.2016
18:56:19
не понимаю почему оно рабтало раньше

Pavel
14.10.2016
18:56:32
Потому что вы извращенец. ) Посмотрите модуль glob.

Artem
14.10.2016
18:56:32
А не один раз собираешь список и обходишь его?

Ssi
14.10.2016
18:56:33
проверяй сразу внутри for'а

87776
14.10.2016
18:56:42
Заново
да, потому что файлов может быть больше одного

Artem
14.10.2016
18:56:56
Прочитай плз еще раз

87776
14.10.2016
18:57:09

Pavel
14.10.2016
18:57:22
И вообще непонятно, зачем сканить директорию снова и снова.

87776
14.10.2016
18:57:25
мне критично чтобы процесс сразу запустился если нет ни одногоф айла зшв
pid

Ssi
14.10.2016
18:57:44
но ты всё равно проходишь по списку

Artem
14.10.2016
18:57:45
И?

Ssi
14.10.2016
18:58:02
мне?

Google

Artem
14.10.2016
18:58:03
Сколько занимает обход пустого списка?
Нет, не тебе

Ssi
14.10.2016
18:58:18
не, не пустого
в его случае он может быть не пустой, но без нужных файлов. Но проверяет их наличие он всё тем же обходом

87776
14.10.2016
18:59:31
бля
не хочу рефакторить это говно =(((

Admin
ERROR: S client not available

Ssi
14.10.2016
19:00:07
да там нечего рефакторить

Pavel
14.10.2016
19:00:09
Может, начнем с исходной задачи? А то там явно делаются лишние действия.
Имхо, там от силы один цикл понадобится.

Artem
14.10.2016
19:02:13
for filename in [f for f in os.listdir(stop_path) if f.enswith(".pid")]:

Ssi
14.10.2016
19:02:15
убрать while и внутри for поставить первыми двумя строчками что-то вроде:
if not file.endwith('.tg'):
continie;

87776
14.10.2016
19:02:21
короче, исходня задача:
пройтись по директории, если есть файл stop - попытаться найти файл *.pid - вытащить из него цифры и попытаться их убить, дальше посмотреть есть ли такой процесс вообще, если такого процесса больше нет то удаляем файл
вот как выглядит мой код, который не работаает из-за отсутвия у str метода endwith, кстати не понимаю почему в случае с any он работает

Artem
14.10.2016
19:02:55
pid = filename[:-4]

87776
14.10.2016
19:03:02
def main(path):
if os.path.isfile(path+'stop'):
while any(item.endswith(".pid") for item in os.listdir(path)):
for file in os.listdir(path):
if file.endwith('.pid'):
pid = file.split('.')
try:
os.kill(pid, signal.SIGTERM)
time.sleep(1)
except:
pass
if not os.path.exists('/proc/%s'%pid):
os.remove(path+file)

Pavel
14.10.2016
19:03:24
Зачем проверять наличие процесса после его убиения?

87776
14.10.2016
19:03:47
Потому что он мог не умереть по каким-то причинам, например пользователь с правами накосячил

arisu
14.10.2016
19:05:20

Google

Pavel
14.10.2016
19:06:09
Понятно. Тогда примерно так:
for file_path in glob.glob(os.path.join(path, "*.pid")):
try:
os.kill(int(file_path[:-4]), signal.SIGTERM)
except OSError:
pass
else:
os.remove(file_path)
if not os.path.exists(...) добавить по вкусу

Artem
14.10.2016
19:08:05
Еще вначале os.path.join(path, "stop"))
А не + "stop"

87776
14.10.2016
19:08:28
не понимаю
там же isfile

Pavel
14.10.2016
19:08:45
А, ну еще это условие дописать. И возможно немного накосячил в деталях.

Artem
14.10.2016
19:08:48
isfile(os.path.join(path, "stop")))

87776
14.10.2016
19:09:10

Pavel
14.10.2016
19:09:29
Короче, вам нужен один цикл максимум.
И не заниматься фильтрацией по имени вручную.

87776
14.10.2016
19:10:00
а что делает глоб?

Artem
14.10.2016
19:10:10
А если в изначальный метод передать путь без слеша в конце, ничего не сработает и никто не заметит
Так что os.path.join

Pavel
14.10.2016
19:10:23
https://docs.python.org/3/library/glob.html#glob.glob

87776
14.10.2016
19:10:35

Pavel
14.10.2016
19:10:52
А вы не избегайте, это суть добро и свет

87776
14.10.2016
19:10:54
олсо я писал на втором петоне

Pavel
14.10.2016
19:11:13
https://docs.python.org/2/library/glob.html#glob.glob

Artem
14.10.2016
19:12:13
не стоит забивать на гуд практисы