1 Востаннє редагувалося nicoliafox (24.10.2014 15:17:52)

Тема: Підскажіть будь ласка, що в коді неправильно бо друга умова не працює

Підскажіть будь ласка, що  в коді неправильно бо друга умова не працює, коли пошук по змісту та ща маскою, ще питання можна сюди додати клас з мінімальним дописуванням класу.

Прихований текст
Bartash: невеликі блоки коду слід розміщувати у повідомленні.

import subprocess 
import os, sys, fnmatch

open_=input (u'Шукаємо файл? y/n ')
if open_.strip() in ("y Y yes Yes YES").split():
    t = input(u"Введіть директорію:")
    r = input(u"Введіть ім'я файлу: ")
    sf=[]
    for d, dirs, files in os.walk(t):
        for f in files:
            if f == r:
                print (d,f)
                sf.append(d+',')
                a = sf
                open_f=input(u'Завантажити файл? ')
                if open_f.strip() in ("y Y yes Yes YES").split():
                    os.chdir(d)
                    os.startfile(f) # завантаження файлу
                else: pass
    
    data = a
    for i in data:
        PATH=i.replace(",", " ")
        print (PATH)
        open_f=input(u'Відкрити директорію? ')
        if open_f.strip() in ("y Y yes Yes YES").split():
            subprocess.Popen('explorer "%s"'%(PATH))
        
        else:
            break
else:
    open_=input(u'Шукаємо слово в файлі? y/n ')
    if open_.strip() in ("y Y yes Yes YES").split():
        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, 'rb').read()
                    if data.find(pattern) != -1:
                        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)

Далі йде така частина коду:

Прихований текст
Bartash: невеликі блоки коду слід розміщувати у повідомленні.

else:
    open_=input(u'Шукаємо слово в файлі? y/n ')
    if open_.strip() in ("y Y yes Yes YES").split():
        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, 'rb').read()
                    if data.find(pattern) != -1:
                        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: Підскажіть будь ласка, що в коді неправильно бо друга умова не працює

Уточніть питання: в якому рядку умова, що має бути, що є..

I belong to the Dead Generation.