fortune/tools/do_uniq.py
slight imporvements to do_uniq.py: - use with open() - don't depend on sys.argv directly - fix style
This commit is contained in:
parent
16a38a930d
commit
62e8d5e1b0
|
@ -4,7 +4,8 @@
|
||||||
#
|
#
|
||||||
# an aggressive little script for trimming duplicate cookies
|
# an aggressive little script for trimming duplicate cookies
|
||||||
|
|
||||||
import re, sys
|
import argparse
|
||||||
|
import re
|
||||||
|
|
||||||
wordlist = [
|
wordlist = [
|
||||||
'hadnot',
|
'hadnot',
|
||||||
|
@ -15,6 +16,7 @@ wordlist = [
|
||||||
'a', 'd', 'i', 'm', 's',
|
'a', 'd', 'i', 'm', 's',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def hash(fortune):
|
def hash(fortune):
|
||||||
f = fortune
|
f = fortune
|
||||||
f = f.lower()
|
f = f.lower()
|
||||||
|
@ -27,37 +29,40 @@ def hash(fortune):
|
||||||
# f = f[-30:]
|
# f = f[-30:]
|
||||||
return f
|
return f
|
||||||
|
|
||||||
|
|
||||||
def edit(datfile):
|
def edit(datfile):
|
||||||
dups = {}
|
dups = {}
|
||||||
fortunes = []
|
fortunes = []
|
||||||
fortune = ""
|
fortune = ""
|
||||||
for line in file(datfile):
|
with open(datfile, "r") as datfiledf:
|
||||||
if line == "%\n":
|
for line in datfiledf:
|
||||||
key = hash(fortune)
|
if line == "%\n":
|
||||||
if key not in dups:
|
key = hash(fortune)
|
||||||
dups[key] = []
|
if key not in dups:
|
||||||
dups[key].append(fortune)
|
dups[key] = []
|
||||||
fortunes.append(fortune)
|
dups[key].append(fortune)
|
||||||
fortune = ""
|
fortunes.append(fortune)
|
||||||
else:
|
fortune = ""
|
||||||
fortune += line
|
else:
|
||||||
|
fortune += line
|
||||||
for key in list(dups.keys()):
|
for key in list(dups.keys()):
|
||||||
if len(dups[key]) == 1:
|
if len(dups[key]) == 1:
|
||||||
del dups[key]
|
del dups[key]
|
||||||
o = file(datfile + '~', "w")
|
with open(datfile + "~", "w") as o:
|
||||||
for fortune in fortunes:
|
for fortune in fortunes:
|
||||||
key = hash(fortune)
|
key = hash(fortune)
|
||||||
if key in dups:
|
if key in dups:
|
||||||
print('\n' * 50)
|
print('\n' * 50)
|
||||||
for f in dups[key]:
|
for f in dups[key]:
|
||||||
if f != fortune:
|
if f != fortune:
|
||||||
print(f, '%')
|
print(f, '%')
|
||||||
print(fortune, '%')
|
print(fortune, '%')
|
||||||
if input("Remove last fortune? ") == 'y':
|
if input("Remove last fortune? ") == 'y':
|
||||||
del dups[key]
|
del dups[key]
|
||||||
continue
|
continue
|
||||||
o.write(fortune + "%\n")
|
o.write(fortune + "%\n")
|
||||||
o.close()
|
|
||||||
|
|
||||||
assert len(sys.argv) == 2
|
parser = argparse.ArgumentParser(description="trimming duplicate cookies")
|
||||||
edit(sys.argv[1])
|
parser.add_argument("filename", type=str, nargs=1)
|
||||||
|
args = parser.parse_args()
|
||||||
|
edit(args.filename[0])
|
||||||
|
|
Loading…
Reference in New Issue