尝试加密文本文件会导致TypeError

时间:2018-12-04 12:04:26

标签: python python-3.x

下面是我的代码:

set -o pipefail

错误:

sh

它返回上面的错误,但我不知道如何解决。

2 个答案:

答案 0 :(得分:1)

遍历文件默认情况下逐行检索数据。您可以使用iter(callable, sentinel)内置函数中的两个参数以字节流的形式读取文件,如下所示。请注意,这种方法不会像使用内置readlines()这样的情况一次将整个文件一次全部读取到内存中。

KEY = 4
encoded = ""

with open("mytext.txt", 'rb') as my_text:
    # Using iter() like below causes it to quit when read() returns an
    # empty char string (which indicates the end of the file has been
    # reached).
    for c in iter(lambda: my_text.read(1), b''):
        rem = (ord(c) - 97 + KEY) % 26
        encoded += chr(rem + 97)

print(encoded)

答案 1 :(得分:0)

您必须使用readlines,并对文本文件中的任何新行进行其他循环。否则单行会很好。

my_text= F = open("mytext.txt")
my_text = F.readlines()
KEY = 4 
encoded= ""
for c in my_text:
    for c1 in c:
        rem = (ord(c1) - 97 + KEY) % 26 
        encoded += chr(rem + 97)

print(encoded)