Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 12, 2013 08:10:18

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Поиск директории сторонней программы

> Если есть предложения как изменить их и выкладывайте

1) Вот это:

if sys.path[0] in (".", ""):
del sys.path[0]

Плохой дизайн приложения, непонятно где хакается аттрибут стандартного модуля. У вас должна быть функция, которая разбирает командную строку и делает выводы (и ничего не хакает в sys модуле). И вообще есть optparse и argparse модули для разбора ком.строки.

2) def Name - PEP8 рекомендует писать имена для функций в underscore-нотации, а не camel case
3) from stat import * - не рекомендуется импортировать всё подряд
4) def name, def names - можно и более осмысленные имена придумать
5) Переменная sts не используется
6) Код трудно читается т.к. имена переменных сильно сокращены, Например, fils и files примерно одинаковой длинны, зачем было уродовать files до fils - непонятно.
7) В целом код трудно читается, какая-то большая функция, в которой цикл, в котором в ветке if воткнули continue… ух. В общем, не хаватает декомпозиции кода на более маленькие функции.
8) Повторение кода, например, res.append(filename), можно вынести из веток if

Офлайн

#2 Сен. 12, 2013 08:23:23

Ashedu
Зарегистрирован: 2012-11-23
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск директории сторонней программы

sanodin
from _winreg import *
aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
for i in range(1024):
    try:
        keyname = EnumKey(aKey, i)
        print keyname
    except WindowsError:
        break
“SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths”
Да, это было бы идеально, если бы туда все приложения записывали о себе информацию)

Отредактировано Ashedu (Сен. 12, 2013 08:24:03)

Офлайн

#3 Сен. 12, 2013 09:37:18

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Поиск директории сторонней программы

Сторонние все вроде туда попадают…
для 64-битных систем есть еще другой ключ! (32-битные программы на 64-битной системе)

SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
Плюс, еще есть портабельные приложения, их только перебором по директориям можно найти

Отредактировано sanodin (Сен. 12, 2013 10:23:06)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version