Найти - Пользователи
Полная версия: неведомый глюк в питоне
Начало » Python для новичков » неведомый глюк в питоне
1 2 3 4
@cckyi_boxxx
__files = os.listdir( os.getcwd() )
all_quest_fnames = []
db_created = False
for x in xrange(0 , len( __files ) ) :
    __fname = os.path.basename( __files[x] )
    print __fname
    if 'db.lol' in __fname : 
        db_created == True
    elif '.hdmp' in __fname :
        all_quest_fnames.append( __files[x] )
        
if not db_created :
    print 'creating db'
    __newdb = file('db.lol' , 'w')
    pickle.dump( [{'name' : 'no' , 'date' : '2013' , 'filename' : None , 'passwd' : False }] , __newdb)
    __newdb.close()

задача проста - проверить наличие созданной бд и если ее нет то создать последнюю внеся дефолтные значения (заодно найти другие файлы для обработки по расширению) но трабла в том что при каждом запуске файл db.lol создаеться заново а это должно происходить только при его отсутствии (до проверки поиска остальных файлов еще не дошел но подозреваю что он тоже не захочет работать ибо проверки идентичны) , питон версии 2.7 , в чем может быть дело ?
dimy44
db_created == True
надо
db_created = True
а вообще у вас там все через одно место сделано
Budulianin
@cckyi_boxxx
задача проста - проверить наличие созданной бд и если ее нет то создать последнюю внеся дефолтные значения (заодно найти другие файлы для обработки по расширению)

Что ты делаешь с моим Python ?!!

import os
import glob
import pickle
DEF_VAL = {'name' : 'no' , 'date' : '2013' , 'filename' : None ,
'passwd' : False } 
list_namedb = glob.glob('./*.hdmp')
if not os.path.exists( os.path.join(os.getcwd(), 'my.db') ):
    with open('my.db', 'w') as fout:
        pickle.dump(DEF_VAL, fout)

жесть
for x in xrange(0 , len( __files ) ) :
    __fname = os.path.basename( __files[x] )

А потом всё сваливаешь на Python! “неведомый глюк в питоне”
@cckyi_boxxx
А потом всё сваливаешь на Python! “неведомый глюк в питоне”
честно говоря не знал про существование glob как и доброй половины стандартной либы поэтому так и пилил

всем сенкс за помощь вопрос снят
Budulianin
for x in xrange(0 , len( __files ) ) :
    __fname = os.path.basename( __files[x] )

В Python, так c последовательностям не работают(через индекс)
Перебирают элементы

namelist = []
for elem in os.listdir( os.getcwd() ):
    namelist.append(os.path.basename(elem))
@cckyi_boxxx
через индекс работал так как нужно было помимо указанных в вопросе задач удалять значения попавшие под критерии поиска а остальные заменить на полные пути при помощи os.path.join() , просто я выкинул ту часть кода что-бы не мозолить глаза отвечающим на мой вопрос лишним кодом , поэтому и работал через индексы а про такой способ знаю , как упоминал выше моя слабость == плохое знание стандартной либы так как редко что-то пишу на питоне , в основном работаю с микроконтроллерами а под них на питогне к сожалению писать нельзя (под atmel avr точно , под пики что-то видел но последние - кал)

ps: уже все запилил с вашей помощью
Budulianin
@cckyi_boxxx
в основном работаю с микроконтроллерами а под них на питогне к сожалению писать нельзя

Всё в твоих руках :)

@cckyi_boxxx
через индекс работал так как нужно было помимо указанных в вопросе задач удалять значения попавшие под критерии поиска

Точно не знаю, что у Вас там, но обратите внимание на built-in function filter
Budulianin
@cckyi_boxxx
в основном работаю с микроконтроллерами

С какими? Что для них пишете ?
@cckyi_boxxx
спасибо , на этот проект я натыкался тут не совсем то что подразумевалось , здесь они используют бутлудер и грузят с флешки интерпритатор питона а в нем уже запускают скрипт на чем имеют колоссальные потери производительности что на тактовой частоте 16 - 32 мгц очень ощутимо ( передача данных по spi c флешки + скорее всего работа с fat32 на ней-же , не уверен но подозреваю что необходима дополнительная оперативка а это еще потери тактовой частоты )

вцелом проект применим когда нужно устройство в которое надо загружать разные программы , например ЧПУ токарного станка и подобные устройства где сравнительно малого быстродействия достаточно

подобных этому проектов несколько (названий уже не вспомню но все они однотипны) а вот под пики я находил транслятор питонокода в ассемблерный код под 8-и битную архитектуру камня , не исключаю даже возможности что это могло работать быстрее чем код на с или с++ , только вот пики это единственные маломощные (если сравнивать например с stm-ками) микроконтроллеры которые греються и могут даже погореть от того что просто порты ввода вывода нагружены на 90% от возможнной нагрузки по даташиту

атмеловские-же просто неубиваемые по сравнению с ними , люди ради теста отжигали мощной нагрузкой подключенной напрямую у atmega48 все порты ввода вывода кроме одного и это чудо продолжало работать только на нем тоесть мозги уцелели

но вот подобного проекта под atmel-овскую продукцию не находил

ps: гуглить бесполезно этим летом часов 5 потратил на это , под пики-то еле нашел а об остальном и говорить нечего , да и смирился я уже с тем что у С хреновый синтаксис по сравнению с питоновским
@cckyi_boxxx
писать приходиться много чего , на данный момент собираю усилок для рок-группы , 5 каналов по 200 вт , 1 канал 70 вт и саб на 1.5 квт , защиту делаю на мк

защита от постоянки на аналоге , но выхлоп повешен на внешнее прерывание , защита по току на цифре я полагаю в коментах не нуждаеться , а от козы защитился по хитрожопому , беру уровни по входу и по выходу (с резистивных делителей) и сравниваю 100 выборок , если по входу уровень скажем 1.2 вольта а по выходу с выходного делителя напруга близка к нулю в более чем 50% случаев значит завелась коза , низкие уровни по входу отправляю в игнор

по большому счету проекты самые разнообразные и зачастую требуеться высокая производительность
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