如何在python中将列表写入文件

时间:2015-04-28 09:13:09

标签: python list

我有一个程序可以将文件内容加密为密文。我希望程序将列表中的密文写入文件。

我需要帮助的部分代码是:

for char in encryptFile:
    cipherTextList = []
    if char == (" "):
        print(" ",end=" ")
    else:
        cipherText = (ord(char)) + offsetFactor
    if cipherText > 126:
        cipherText = cipherText - 94
        cipherText = (chr(cipherText))
        cipherTextList.append(cipherText)
        for cipherText in cipherTextList:
                print (cipherText,end=" ")
    with open ("newCipherFile.txt","w") as cFile:
        cFile.writelines(cipherTextList)

整个程序运行顺利,但名为“newCipherFile.txt”的文件只有一个字符。

我认为这与空列表“cipherTextList = []”的位置有关,但是我已经尝试将此列表从for循环中移出到函数中,但是当我打印它时打印的部分密文处于无限循环中,一遍又一遍地打印正常文本。

任何帮助都很可爱。

2 个答案:

答案 0 :(得分:10)

您继续使用w覆盖打开文件,因此您只能看到最后的值,请使用a追加:

 with open("newCipherFile.txt","a") as cFile:

或者更好的想法,以便在循环外打开它一次:

with open("newCipherFile.txt","w") as cFile:
    for char in encryptFile:
        cipherTextList = []
        ............

答案 1 :(得分:2)

使用("newCipherFile.txt","a")代替("newCipherFile.txt","w")a用于附加,w用于覆盖。