24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
|
import sys
|
||
|
script, input_encoding, error = sys.argv
|
||
|
|
||
|
|
||
|
def main(language_file, encoding, errors): # Define "main" function.
|
||
|
line = language_file.readline() # Read 1 line.
|
||
|
|
||
|
if line: # If this is true (which it will be as long as it is not the end of the file)
|
||
|
print_line(line, encoding, errors) # Call print_line function
|
||
|
return main(language_file, encoding, errors) # Call this function, the if statement will keep it from being an infinite loop. An ingenious sort of "for loop".
|
||
|
|
||
|
|
||
|
def print_line(line, encoding, errors): # Define print line function, which does actual encoding of lanugages.
|
||
|
next_lang = line.strip() # Strip trailing \n
|
||
|
raw_bytes = next_lang.encode(encoding, errors=errors) # Encode language from languages.txt and ecode it into raw bytes. Pass encoding argument to encode()
|
||
|
cooked_string = raw_bytes.decode(encoding, errors=errors) # Decode from raw bytes to a string.
|
||
|
|
||
|
print(raw_bytes, "<==>", cooked_string) # Print raw bytes on the left side, strings on the right.
|
||
|
|
||
|
|
||
|
languages = open("languages.txt", encoding="utf-8") # Open languages file.
|
||
|
|
||
|
main(languages, input_encoding, error) # Run main function with current paramaters and kick-start the loop.
|