Question: Heres the code from file frequency_analysis.py ___________Code___________ #!/usr/bin/python import sys,getopt,math # Print Banner def printBanner(): print 'Frequency analysis program v0.1a' print '' print ' o
Heres the code from file frequency_analysis.py
___________Code___________
#!/usr/bin/python
import sys,getopt,math
# Print Banner
def printBanner():
print 'Frequency analysis program v0.1a'
print ''
print ' o o'
print ' )-('
print ' (O O)'
print ' \\=/'
print ' .-"-.'
print ' //\\ /\\\\'
print ' _// / \\ \\_'
print ' =./ {,-.} \\.='
print ' || ||'
print ' || || hjw'
print ' __|| ||__ `97'
print ' `---" "---\' ASCII art by chris.com '
print ' +---------------------------------+'
print ' | Programmed by Youssif Al-Nashif |'
print ' | May 10, 2017 |'
print ' | CIS4367: Computer Security |'
print ' | Florida Polytechnic University |'
print ' +---------------------------------+ '
# Print usage
def usage():
print 'usage:'
print ' frequency_analysis.py -i '
print ''
sys.exit(2)
# Replace non-alphanumeric and non-space characters
def stripLine(text):
newText=''
newTextNoSpaces=''
for c in str.upper(text):
if (c>='A' and c
newText=newText+c
newTextNoSpaces=newTextNoSpaces+c
else:
newText=newText+' '
return newText,newTextNoSpaces
# Get text from file
def readFile(filename):
# read original file
text=''
textNoSpaces=''
file = open(filename)
line = file.readline()
while line != "":
line, lineNoSpaces=stripLine(line)
text=text+line
textNoSpaces=textNoSpaces+lineNoSpaces
line = file.readline()
return text, textNoSpaces
# Get text statistics
def getStatistics(textNoSpaces):
repetition=[]
totalNumberOfCharacters=0
for i in range(0,26):
repetition.append(0)
for c in textNoSpaces:
repetition[ord(c) - ord('A')] = repetition[ord(c) - ord('A')] + 1
totalNumberOfCharacters = totalNumberOfCharacters + 1
frequency = list(repetition)
for i in range(0, 26):
frequency[i] = float(repetition[i]) / totalNumberOfCharacters
return totalNumberOfCharacters, repetition, frequency
# Print statistics
def printStatistics(totalNumberOfCharacters,repetition,frequency):
print 'Total number of characters is: ', totalNumberOfCharacters, ' '
numberOfDigits = int(math.ceil(math.log(totalNumberOfCharacters, 10)))
rformat='{:'+str(numberOfDigits+5)+'d}'
rformat2='{:'+str(numberOfDigits+10)+'.'+str(numberOfDigits+1)+'f}'
for i in range (0,26):
# print chr(ord('A')+i),rformat.format(repetition[i]),rformat2.format(frequency[i])
print rformat2.format(frequency[i]),chr(ord('A')+i),rformat.format(repetition[i])
print
# Print statistics 2
def printStatistics2(totalNumberOfCharacters, repetition, frequency):
# print 'Total number of characters is: ', totalNumberOfCharacters, ' '
#numberOfDigits = int(math.ceil(math.log(totalNumberOfCharacters, 10)))
numberOfDigits=3
# rformat = '{:' + str(numberOfDigits + 5) + 'd}'
rformat = '{:' + str(numberOfDigits) + '.' + str(numberOfDigits) + 'f}'
for i in range(0, 26):
sys.stdout.write(rformat.format(frequency[i]))
sys.stdout.write(' & ')
if (i==12):
print
print
# Program Body
def main(argv):
# print banner
printBanner()
# get argument
if not argv:
usage()
try:
opts, args = getopt.getopt(argv,'i:',['inputFile='])
except getopt.GetoptError:
usage()
for opt, arg in opts:
if opt in ("-i", "--inputFile"):
inputFile = arg
text, textNoSpaces=readFile(inputFile)
totalNumberOfCharacters, repetition, frequency =getStatistics(textNoSpaces)
# printStatistics2(totalNumberOfCharacters, repetition, frequency)
printStatistics(totalNumberOfCharacters, repetition, frequency)
if __name__ == "__main__":
main(sys.argv[1:])
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
