Форум сайта python.su
В файле (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))
Отредактировано hea007 (Дек. 25, 2013 13:37:41)
Офлайн
Каша какая-то. Это что, надо сделать типа grep?
Офлайн
Вот так заработало:
# -*- 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))
Отредактировано noob_saibot (Дек. 25, 2013 19:37:37)
Офлайн