1

Тема: Не можу зробити відображення результату

Просто програма працює правильно, а інтерпритатор не дає відповідь:

import subprocess 
import os, sys, fnmatch

t = input(u"Введіть директорію:")
mask = input(u'Введіть маску *.py ')
pattern = input(u'Введіть патерн (сигнатуру вірусу) ')
        
def walk(arg, dir, files):
    for file in files:
        if fnmatch.fnmatch(file,mask):
            name = os.path.join(dir, file)
        try:
            data = open(name, 'r').read()
            if data.find(pattern) == True:
                print (name)
            open_f=input (u'Завантажити файл? ')
            if open_f.strip() in ("y Y yes Yes YES").split():
                os.chdir(t)
                os.startfile (name) # завантаження файлу

        except:
            pass
        else:
            pass
                    
os.chdir (t) # переход в директорію
os.walk (t)

2

Re: Не можу зробити відображення результату

1. Якщо програма не дає відповіді, звідки відомо, що вона працює правильно?
2. Яким чином ми можемо визначити, чи правильно працює програма і чи дає вона відповідь, якщо ви не написали, що ця програма має робити?

3

Re: Не можу зробити відображення результату

koala написав:

1. Якщо програма не дає відповіді, звідки відомо, що вона працює правильно?
2. Яким чином ми можемо визначити, чи правильно працює програма і чи дає вона відповідь, якщо ви не написали, що ця програма має робити?

+1

SET TELEPATH MODE ON

Припускаю, що десь мала викликатися функція walk(), натомість викликається os.walk().


P.S: ТС, негарно робити except: pass , else: pass
Поставте там хоч якийсь print 'I am in Except!'

4 Востаннє редагувалося nicoliafox (28.12.2014 13:51:42)

Re: Не можу зробити відображення результату

Програма повинна виконувати пошук файлів по їх змісту (тексту).

Все одно:

import subprocess 
import os, sys, fnmatch

t = input('Введіть директорію:')
mask = input('Введіть маску *.py ')
pattern = input('Введіть патерн (сигнатуру вірусу) ')
        
def walk(arg, dir, files):
    for file in files:
        if fnmatch.fnmatch(file,mask):
            name = os.path.join(dir, file)
            try:
                data = open(name, 'rb').read()
                if data.find(pattern) == True:
                    print (name)

            except:
                pass
            else:
                print ('fuck virus!')

5

Re: Не можу зробити відображення результату

Сильно не вникав . Але остній елс на своєму місці ?