@ru_python

Страница 1629 из 9768
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
if any(item.endswith(".tg") for item in array):
выглядит очень извращенно, но это именно то что мне нужно

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
проверяй сразу внутри for'а
зачем? тогда мне надо будет пройтись по всем файлам, если ни одного файла нет

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
не, не пустого

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

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
Потому что он мог не умереть по каким-то причинам, например пользователь с правами накосячил

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
isfile(os.path.join(path, "stop")))
чот ты слажны ваще)

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

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
не стоит забивать на гуд практисы

Страница 1629 из 9768