需要帮助使用Python制作文件i / o程序

时间:2014-04-30 14:11:19

标签: python encryption file-io cryptography

制作如下的密码学程序。(向其添加文件i / o)

  1. 你应该(至少)有两个功能:加密和解密。
  2. 增强您的主要常规: 一个。欢迎用户
    湾询问用户是否要加密或解密 C。询问用户加密消息要写入/读取的文件 d。如果加密:
    要求加密的消息
    要求钥匙
    调用加密来创建密文
    打开文件
    将密码测试写入文件
    关闭文件
    告知用户密码文本(已显示)已存储到文件中(请务必提及文件的名称!)
    即如果解密:请求密钥打开文件从文件中读取密码测试关闭文件调用解密以解密密文显示为用户发送的消息
    F。询问用户是否想要执行另一项任务
    G。若然,请转至(b)
    H。否则退出
  3. 以下是我需要在程序中添加的代码:

    #open file to write record(s). It will create the file if new!
    f = open("temp.txt", "w") 
    f.write("Hello!\n")
    f.close
    
    #open file to read this time
    f = open("temp.txt", "r")
    line = f.readline()
    print(line)
    f.close
    
    #try binary read...
    f = open("temp.txt", "rb")
    line = f.readlines()
    print(line)
    f.close
    

    这是我已经拥有的(除了文件的输入/输出功能之外的一切):

    # Caesar Cipher
    
    MAX_KEY_SIZE = 26
    
    def getMode():
        while True:
            mode = input("Do you wish to encrypt or decrypt a message?").lower()
            if mode in "encrypt e decrypt d". split():
                return mode
            else:
    ##            print("Enter either "encrypt" or "e" or "decrypt" or "d".')
    def getMessage():
        return input("Enter you message")
    
    def getKey():
        key = 0
        while True
            key = int(input("Enter a key number (1-26)"))
            if (key >=1 and key <= MAX_KEY_SIZE):
                return key
    
    def getTranslatatedMessage(mode, messafe, key):
        if mode[0] == "d":
            key = -key
        translated = ""
    
        for symbol in message:
            if symbol.isalpha():
                num = ord(symbol)
                num += key
    
                if symbol.isupport():
                    if num > ord("Z"):
                      num -= 26
                    elif num < ord("A"):
                      num += 26
                elif symbol.islower():
                    if num < ord("z"):
                      num += 26
                    elif num < ord("a"):
                      num += 26
    
                translated += chr(num)
            else:
                translated += symbol
        return translated
    mode = getMode()
    message = getMessage()
    key = getKey()
    

    我的问题是我在哪里将上述代码添加到加密/解密程序中?

2 个答案:

答案 0 :(得分:0)

你没有问过你的问题。

您可以在Python documentation

中找到有关输入/输出的信息

基本上,您可以打开文件,写入文件并按以下方式关闭它:

    f = open("myfile", "w")
    text = "something"
    f.write(text)
    f.close()

为了处理二进制数据,可以指定二进制格式&#34; wb&#34;写作或&#34; rb&#34;阅读和转换,如:

    f = open("binfile", "rb")
    buffer = f.read(2)
    print hex(ord(buffer[0]))

还有其他方法可以在Python中打包/解压缩二进制文件,但是你必须提出一个更精确的问题。

答案 1 :(得分:0)

您似乎想要处理文件而不是用户提供的消息。 因此,在 getMessage 中,您应该返回读取文件的内容

    def getMessage():
        f = open("temp.txt", "r")
        text = f.read()
        f.close()
        return text

你写信给翻译的消息。