Ik heb een hele rits bestanden, en elk uur komen daar een paar 100 bij.
In elk van deze bestanden staat maar één regel met daarin BoxID="<nummer>"

Nu wil ik dus uit al deze bestanden bijvoorbeeld alleen de bestanden met BoxID="30", maar morgen kan dit weer anders zijn en dan wil ik bijvoorbeeld BoxID 90 en 200 Ik schrijf de nummers die ik wil hebben in het bestand boxid, dat is het eerste stukje, die leest hij goed uit. Daarna wil ik het script laten filteren op de daadwerkelijke bestanden en dus op de nummers die ik opgegeven heb in het bestand boxid.

Ik hoop dat het wat duidelijker is... Maar ik ben er nu al zo lang mee bezig dat ik door de bomen het bos niet meer zie...

Alvast bedankt voor het antwoord..





op 25-04-14 17:10, Floris van Manen schreef:
Je hebt een folder met daarin een aantal bestanden en in elk bestand een aantal 
regels met op elke regel één getal?
Vervolgens wil je een lijst van alle bestanden en daarvan alle regels waarvan de 
waarde <= is aan een gegeven integer (float) waarde?

In dat geval zou je een dict kunnen maken met als sleutel de naam van het 
bestand en als value de lijst van de getallen in dat bestand.

Afhankelijk van het aantal keren dat je die data wilt doorzoeken, kun je er 
voor kiezen om de getallen als index te kiezen met als value een lijst van 
bestandsnamen.

.F


bijvoorbeeld:


#!/usr/bin/env python
# encoding: utf-8

import os
from collections import defaultdict

fv = defaultdict(list)
vf = defaultdict(list)

folder = 'tmp'
for fn in os.listdir(folder):
     ffn = os.path.sep.join([folder, fn])
     if fn.endswith('.txt'):
         with open(ffn, 'r') as fp:
             content = fp.readlines()
             values = [int(x) for x in content if x]
             print ffn
             print values
             fv[ffn].append( values)
             for v in values:
                 vf[v].append( ffn )


print '='*20
print fv
print '='*20
print vf

print '='*20
zoek = 46
for k,v in vf.iteritems():
     if k <= zoek:
         print v







_______________________________________________
Python-nl mailing list
Python-nl@python.org
https://mail.python.org/mailman/listinfo/python-nl

_______________________________________________
Python-nl mailing list
Python-nl@python.org
https://mail.python.org/mailman/listinfo/python-nl

Antwoord per e-mail aan