op 25-04-14 18:36, albert visser schreef:
Hoi Johan,
On Fri, 25 Apr 2014 16:28:15 +0200, Johan Hendriks
<joh.hendr...@gmail.com> wrote:
Goedemiddag allemaal.
Je belangrijkste issues lijken me het samenstellen van de zoekstring
en het aflopen van alle mogelijkheden bij het zoeken.
Zoals eerder verteld kun je een zoekstring opbouwen als zoekstring =
'BoxID="{}".format(boxid)
Bij het doorlezen van het boxid bestand kun je een in plaats van de
boxid's te printen een list opbouwen met alle dingen die je zoekt.
Bv.
with open("/root/scripts/boxid","r") as f:
boxids = ['BoxID="{}".format(x.strip()) for x in f.readlines()]
Tijdens de lus waarin je de bestanden doorloopt kun je dan alle
zoekstrings stuk voor stuk uitproberen:
for filename in all_files:
found = False
with open(filename) as f_in:
for search in boxids:
if search in f_in.read():
found = True
break
if found:
print(filename) # of wat je er dan ook mee wilt doen
Als dit te snel gaat: ik heb hier wat statements in elkaar geschoven,
als je wilt kun je de langere versie ook krijgen.
Disclaimer: ik heb deze code niet getest dus of het werkt weet ik
niet, het is meer bedoeld om je een idee te geven van hoe je dit kan
aanpakken.
NB ik gebruik hier print(x) in plaats van print x, dat is omdat ik me
heb aangewend om met Python 3 te werken; ik zou je aanraden om als je
net begint dat niet met Python 2 te doen tenzij je daar een absoluut
goede reden voor hebt.
Mijn tweede vraag is zijn er in Nederland gebruikers groepen die
python programmeer lessen geven, of zijn er lokale groepen of mensen
die dit doen?
Geen idee maar mailing lijsten zoals deze zijn hier volgens mij bij
uitstek geschikt voor. Als beginner zou je misschien ook Python-tutor
kunnen proberen, maar dat is dan wel in het Engels.
Hou er rekening mee dat veel mensen liever je eigen code willen zien
en daar advies over geven dan je programma's voor je schrijven - ik
zeg altijd maar dat je meer leert van een paar keer iets fout doen dan
van een "first-time right".
Alvast bedankt voor uw tijd, en mijn excuses als de mailing list hier
niet voor bedoeld is.
Zie boven
gr
Johan
_______________________________________________
Python-nl mailing list
Python-nl@python.org
https://mail.python.org/mailman/listinfo/python-nl
Dankzij jullie aanwijzingen is het mij dan toch gelukt, en ik zag het
eigenlijk al niet echt meer zitten :D
Het was even stoeien, maar de aanhouder wint..
De prints tussen door deed ik om te kijken of er ook daadwerkelijk iets
uit kwam.
bijvoorbeeld print content gaf mij op een gegeven moment
"123
"
Zo kwam ik er dus achter dat er een return mee kwam. na wat googlen kun
je die dus weghalen met rstrip()
Het is erg leuk om zo bezig te zijn, maar soms heb je net even het zetje
in de juiste richting nodig.
Uiteindelijk is het script als volgt geworden.
#!/usr/bin/env python
import os, string
# get boxid's
with open("/root/scripts/boxid","r") as f:
content = f.read().rstrip("\n")
boxid = content.split()
# read the XML files
path = "/usr/local/samba/data/XML"
for fname in os.listdir(path):
document = os.path.join(path, fname)
for line in open(document):
for i in range(len(boxid)):
searchstring = 'BoxID="{}"'.format(boxid[i])
if searchstring in line:
print document, searchstring
Het bestand /root/scripts/boxid bevat het volgende :
49
46
149
123
Na het uitvoeren van het script ziet het er als volgt uit.
FreeBSD-thuis scripts # ./ggsecurity.py
/usr/local/samba/data/XML/RXL0061361833.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061361560.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061361243.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061360944.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061360652.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061346439.xml', 'BoxID="46"
/usr/local/samba/data/XML/RXL0061380738.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061380409.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL0061380106.xml', 'BoxID="123"
/usr/local/samba/data/XML/RXL1670876746.xml', 'BoxID="46"
/usr/local/samba/data/XML/1656754454544.xml', 'BoxID="49"
/usr/local/samba/data/XML/1556467754332.xml', 'BoxID="149"
Nu is het tijd om te gaan slapen....
Van de week weer verder om er wat meer acties aan vast te knopen zoals
het verplaatsen en hernoemen van de gevonden bestanden.
Ik wil jullie allemaal heel erg bedanken voor jullie tijd om mij op het
goede spoor te zetten.
gr
Johan
_______________________________________________
Python-nl mailing list
Python-nl@python.org
https://mail.python.org/mailman/listinfo/python-nl