Python Forum
Thread Rating:
  • 1 Vote(s) - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
My version GhostGame
#8
(Jun-20-2018, 08:44 PM)ichabod801 Wrote: All variables appear and then disappear.
Of course, but I was talking about following several lines.

My code :)
import re, os

def make_log(msg):
    print(msg)
    log.append(msg)

def search_one_chr(py_file):
    with open(py_file) as fin:
        lines=fin.readlines()
    file_show=1
    for i, line in enumerate(lines,1):
        r=rex.findall(line)
        if r:
            if file_show:
                file_show=0
                make_log('%s\nfile = "%s"' % ('*'*50, py_file))
            c=r[0]
            if c in chrs:
                chrs[c]+=1
            else:
                chrs[c]=1
            make_log('line = %s, code = "%s"' % (i, line.rstrip()))

def log_save(log, log_file):
    with open(log_file, 'w') as fout:
        fout.write('\n'.join(log))

pattern=r"^(?:\t*| *)([a-zA-Z]) = "
rex=re.compile(pattern)
path='/usr/lib/python3.5/'
path_code_source=os.path.abspath(path)
chrs={}
log=[]
for root, dirs, files in os.walk(path_code_source):
    for next_file in files:
        if next_file.endswith('.py'):
            search_one_chr(os.path.join(root,next_file))
cnt=0
for c in sorted(chrs.keys()):
    cnt+=chrs[c]
    make_log('letter %s as var used %s times' % (c,chrs[c]))
make_log('all used one letter as var %s times' % cnt)
log_save(log, 'log_file.txt')
For python dir.
Output:
letter A as var used 4 times letter B as var used 2 times letter H as var used 2 times letter I as var used 2 times letter K as var used 1 times letter L as var used 22 times letter M as var used 8 times letter N as var used 1 times letter P as var used 2 times letter R as var used 2 times letter S as var used 1 times letter T as var used 11 times letter U as var used 2 times letter X as var used 1 times letter a as var used 96 times letter b as var used 43 times letter c as var used 144 times letter d as var used 84 times letter e as var used 24 times letter f as var used 172 times letter g as var used 40 times letter h as var used 53 times letter i as var used 245 times letter j as var used 71 times letter k as var used 54 times letter l as var used 42 times letter m as var used 124 times letter n as var used 176 times letter o as var used 24 times letter p as var used 76 times letter q as var used 28 times letter r as var used 67 times letter s as var used 300 times letter t as var used 82 times letter u as var used 11 times letter v as var used 66 times letter w as var used 42 times letter x as var used 64 times letter y as var used 37 times letter z as var used 10 times all used one letter as var 2236 times
For Django dir in my pc.
Output:
letter A as var used 1 times letter D as var used 1 times letter L as var used 1 times letter M as var used 1 times letter T as var used 1 times letter c as var used 28 times letter d as var used 13 times letter e as var used 1 times letter f as var used 16 times letter g as var used 23 times letter h as var used 2 times letter i as var used 15 times letter j as var used 3 times letter k as var used 1 times letter m as var used 27 times letter n as var used 5 times letter p as var used 13 times letter q as var used 4 times letter r as var used 14 times letter s as var used 48 times letter t as var used 27 times letter u as var used 7 times letter v as var used 8 times letter w as var used 1 times letter x as var used 5 times letter y as var used 2 times all used one letter as var 268 times
Reply


Messages In This Thread
My version GhostGame - by anickone - Jun-18-2018, 08:52 PM
RE: My version GhostGame - by nilamo - Jun-18-2018, 08:58 PM
RE: My version GhostGame - by nilamo - Jun-18-2018, 08:59 PM
RE: My version GhostGame - by anickone - Jun-18-2018, 09:51 PM
RE: My version GhostGame - by ichabod801 - Jun-18-2018, 10:20 PM
RE: My version GhostGame - by anickone - Jun-20-2018, 06:25 PM
RE: My version GhostGame - by ichabod801 - Jun-20-2018, 08:44 PM
RE: My version GhostGame - by anickone - Jun-21-2018, 08:29 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020