Найти - Пользователи
Полная версия: Помогите правильно расположить ЦИКЛЫ
Начало » Центр помощи » Помогите правильно расположить ЦИКЛЫ
1
hea007
В файле (words.txt) строки для поиска внутри файлах. Цикл почему то отработает только один раз.
# -*- coding: utf-8 -*-
import os
import csv
import sys
def f(file,s):
    with open(file, 'rb') as file1:
        s1=file1.read().upper()
        return s1.find(s.encode('utf-8').upper())
reader = csv.reader(open('words.txt'), quotechar='\n')
for root, dirs, files in os.walk("d:\\"):
    for filename in files:
        fullname = os.path.join(root, filename)
        for num,row in enumerate(reader):
            for s in row:
                print(fullname,s)
                w=f(fullname, s)
                if w > 0:
                    os.system('md '+'out\\'+'"'+s+'"')
                    os.system('copy "'+fullname+'" out\\'+'"'+s+'"'+'\\')
                    print('Строка: '+s+ '. В файле: '+fullname+ '. позиция: '+str(w))
Master_Sergius
Каша какая-то. Это что, надо сделать типа grep?
noob_saibot
Вот так заработало:
# -*- coding: utf-8 -*-
import os
import csv
import sys
def f(file,s):
    with open(file, 'r') as file1:
        s1=file1.read().upper()
        return s1.find(s.encode('utf-8').upper())
for root, dirs, files in os.walk("D:/999/"):
    for filename in files:
        fullname = os.path.join(root, filename)
        reader = csv.reader(open('D:/katalog.txt'), quotechar='\n')
        for num,row in enumerate(reader):
            for s in row:
                print(fullname,s)
                w=f(fullname, s)
                if w>0:
                    os.system('md '+'out\\'+'"'+s+'"')
                    os.system('copy "'+fullname+'" out\\'+'"'+s+'"'+'\\')
                    print(u'Строка: '+s+ u'. В файле: '+fullname+ u'. позиция: '+str(w))
reader = csv.reader(open('Dkatalog.txt'), quotechar='\n') —- тупила. Я так понял csv.reader прогоняет все значения и заканчивает работу с txt, так что его надо опять запускать.

Зы. Только на свои директории поменяйте.

Зыы. И у вас находит заданное слово 1 раз далее выходит, просто вдруг заданное слово там не один раз…
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