Beste Tweakers,
Een aantal weken ben ik al aan het programmeren, maar heb ondertussen een probleem.
Wat ik geprogrammeerd is het volgende, ik maak een queue en die vul ik met de bestanden die ik inlees op het systeem. Vervolgens trek ik uit de bestanden een aantal data en maak ik van die bestanden een hash.
Om het op te lossen heb ik overal al prints en exceptions proberen op te vangen om wat wijzer te worden, maar mij lukt het niet om duidelijk te krijgen, waarom hij vast loopt.
Weet wel waar die vast loopt. Hij loopt vast bij regel die met commentaar is aangeven.
Hopelijk is er iemand die kan zien wat ik verkeerd doe of waar het aan kan liggen... Ben zelf niet extreem thuis in Python (2.7.3)... Maar heb wel enige programmeer ervaring.
Code:
Een aantal weken ben ik al aan het programmeren, maar heb ondertussen een probleem.
Wat ik geprogrammeerd is het volgende, ik maak een queue en die vul ik met de bestanden die ik inlees op het systeem. Vervolgens trek ik uit de bestanden een aantal data en maak ik van die bestanden een hash.
Om het op te lossen heb ik overal al prints en exceptions proberen op te vangen om wat wijzer te worden, maar mij lukt het niet om duidelijk te krijgen, waarom hij vast loopt.
Weet wel waar die vast loopt. Hij loopt vast bij regel die met commentaar is aangeven.
Hopelijk is er iemand die kan zien wat ik verkeerd doe of waar het aan kan liggen... Ben zelf niet extreem thuis in Python (2.7.3)... Maar heb wel enige programmeer ervaring.
Code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| #!/usr/bin/python import os, sys, Queue, threading, re, time import magic from hash import * from macs import * fileList = [] rootDir = sys.argv[0] top = os.getcwd() start = '/' nameThread = threading.currentThread().getName() class Scanner(threading.Thread): def __init__(self, queue, dir): threading.Thread.__init__(self) self.queue = queue self.dir = dir def run(self): print "Adding filepaths to queue" self.addToQueue(self.dir) print "Adding filepaths to queue done" def addToQueue(self, topdown=True): for root, dirs, files in os.walk(start, topdown=True, followlinks=False): for name in files: self.queue.put(os.path.join(root,name)) print "Successfully added filepath\t",os.path.join(root,name), "to queue" class Hasher(threading.Thread): def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue def run(self): nextFile = self.queue.get() while nextFile: try: print "\n","\n","Trying " + nextFile #laatst geprint self.scanFile(nextFile) #hier loopt hij vast en blijft hij hangen... nextFile = self.queue.get() self.queue.task_done() print "\n","Hashing of this file successfull" except: print "Failed to scan file:", "/n",sys.exc_info()[0] #geeft geen exception nextFile = self.queue.get() self.queue.task_done() pass def scanFile(self, name): filepath = self.queue.get() ftype = magic.from_file(filepath) mtype = magic.from_file(filepath, mime=True) btype = magic.from_buffer(open(filepath).read(1024)) fileQueue = Queue.Queue() print "\n","Starting in directory:", start print "\n","Starting Scanner" for scanner in xrange(1): scanner = Scanner(fileQueue, rootDir) scanner.start() print "\n","Scanner started successfully" scanner.join() print "\n","Stopping Scanner" print "\n","Starting Hasher" for hasher in xrange(1): hasher = Hasher(fileQueue) hasher.start() print "\n","Hasher started successfully" hasher.join() print "\n","Stopping Hasher" |