def file_contents():
    global file_encrypt
    encryption_file = input("What is the name of the file?")
    file_encrypt = open(encryption_file, 'r')
    contents = file_encrypt.read()
    print (contents)
    ask_sure = input("Is this the file you would like to encrypt?")
    if ask_sure == "no":
        the_menu()
This part of the code opens the file the user enters, right? There are no real problems here.
def key_offset():
    key_word = ''
    count = 0
    total = 0
    while count < 8:
        num = random.randint (33, 126)
        letter = chr(num)
        key_word = key_word + letter    
        count = count + 1
        offset = ord(letter)
        total = total + offset
    print("Make sure you copy the key for decryption.")
    if count == 8:
        total = total/8
        total = math.floor(total)
        total = total - 32
        print(key_word)
        return total
This is the part where it calculates the offset and etc etc. Once again no problems here.
def encrypting():
    file = file_contents()
    total = key_offset()
    encrypted = ''
    character_number = 0
    length = len(file_encrypt)
And then this is where the problem appears, I have made the variable file_encrypt global in the first block of code, so therefore it should work. I have tried calling it under another variable like file_en = file_encrypt and used file_en in the length calculating, but it keeps saying it has no length... I have tried asking friends and my teacher, but they seem clueless. The problem is that every time i get to this part it says that file_encrypt has no length or the other way I tried it, file_en has no length, something to do with TextWrapper.io.
 
     
     
    