11#!c:\\Python27\python.exe
22
3- import sys
4- sys.path.append("c:\\Users\\graylinkim\\sc2reader")
3+ import os,sys
54from sc2reader import Replay
5+ from sc2reader.exceptions import ParseError
6+
7+ def doFile(filename):
8+
9+ try:
10+ replay = Replay(filename)
11+ print "\nStarcraft II Version %s" % replay.releaseString
12+ print "%s on %s played on %s" % (replay.type,replay.map,replay.date)
13+
14+ #Player[0] is None so that players can be indexed by ID
15+ for team,players in replay.teams.iteritems():
16+ print "\n\tTeam %s: %s" % (team,replay.results[team])
17+ for player in players:
18+ print "\t\t%s" % player
19+
20+ except ParseError as e:
21+ prev = e.replay.events[-1]
22+ event = e.event
23+ bytes = e.event.bytes+e.bytes.peek(30)
24+ print "\nVersion %s replay:\n\t%s" % (e.replay.releaseString,e.replay.file)
25+ print "\tError parsing event Type=%s, Code=%s" % (hex(e.event.type),hex(e.event.code))
26+ print "\tPrevious Event: %s" % prev.name
27+ print "\t\t"+prev.bytes
28+ print "\tFollowing Bytes:"
29+ print "\t\t"+bytes
30+
31+
32+ def doDir(dirname):
33+ for name in os.listdir(dirname):
34+ replaypath = os.path.join(dirname,name)
35+
36+ if os.path.isfile(replaypath):
37+ doFile(replaypath)
38+ elif os.path.isdir(replaypath):
39+ doDir(replaypath)
640
741assert len(sys.argv)>1, "A path to at least 1 sc2replay file is required"
842for filename in sys.argv[1:]:
9- replay = Replay(filename)
10- print "\nStarcraft II Version %s" % replay.releaseString
11- print "%s on %s played on %s" % (replay.type,replay.map,replay.date)
12-
13- #Player[0] is None so that players can be indexed by ID
14- for team,players in replay.teams.iteritems():
15- print "\n\tTeam %s: %s" % (team,replay.results[team])
16- for player in players:
17- print "\t\t%s" % player
43+ if os.path.isfile(filename):
44+ doFile(filename)
45+ elif os.path.isdir(filename):
46+ doDir(filename)
0 commit comments