I don't know why i entered the below code
And we don't know either !-)
and it will miss some
records.
Anyone can help me???
If you hope to get some useful help, it would be a good idea to follow
Diez's advice (see other post in this thread)
users = {}
users1 = {}
while 1:
Unless there is a break somewhere in the following code (I can't find
one...), this is an endless loop. But you know this, don't you ?
user, serviceType, msgType, inOut, date, time, numBytes =
aLog.GetNextMessage("")
fullmsg = serviceType + "|" + msgType + "|" + inOut
tip : use string formating instead (string concatenations are to be
avoided in Python), ie:
fullmsg = "%s | %s | %s" % (serviceType, msgType, inOut)
bytemsg = user + " " + serviceType + " " + msgType + " " + inOut + " "
+ numBytes idem
user1 = user
msgDict = {}
byteDict = {}
This re-initialises both dicts on each iteration. Is this really what
you want ?
print bytemsg # 53 records in source file
Here you have an obvious indentation problem. This code *cannot* run.
Take care of not mixing tabs and spaces (tip: configure you editor to
only use spaces)
msgDict = users[user] # get the cum statistics for this user
Given the above binding of 'users' as an empty dict, this should raise a
KeyError. It's also overwriting the previous binding of msgDict.
idem. Also, you don't need to bind 2 different names to the same value
to use this value as key in 2 different dicts. Here you could as well
use user for both dicts, since user and user1 are bound to the same value.
print bytemsg # 50 records in source file
In addition to Diez's reading advice, here are some that are more
specific to code-related questions:
1/ paste code, dont re-type it
.... this avoid stupid typos
2/ post running code
.... if the code is so obviously broked that it cannot even compile|run,
readers will have to fix it first - which they'll probably won't do.
Even if they do, they may not fix it the right way. Everyone's losing
its time...
3/ post the smallest possible bit of code that exhibit your problem
.... no one's going to [read 3000 lines of code | install 30 gigabytes of
third part libs | etc...] just to help you. Moreover, quite often, one
finds the bug while reducing the problematic code to it's smallest possible.
And one last: don't forget to put your bullet-proof jacket on before
reading the answers !-) (well, c.l.py is probably one of the friendliest
groups on usenet, but still, this is usenet).