如何拆分文件中的连接字母

时间:2017-02-08 04:18:41

标签: python encryption split

我有大文件包含密文。密码是这样连接的

QJFQFJDOVRVLHSVUJNHTZDGLDOVGSAYFKFPSAJSOEGXCDHCDDEWGTUUFOVDGQUJD

我的问题是如何分割字母以便我可以循环每个字母?

我尝试使用此代码,但收到此错误消息

num = (ord(symbol)-k) % 126
  

TypeError:ord()期望的字符串长度为1,但找到的列表为#34;

with open(file) as f:
    translated = ''
    for s in f:
            symbol = s.split()
            print(symbol)
            num = (ord(symbol)-k) % 126

            if num < 32:
                    num += 95
            translated += chr(num)
    print(translated)

在添加.split()函数之前我收到此错误消息:

  

&#34; TypeError:ord()需要一个字符,但找到长度为6的字符串&#34;

使用此代码:

with open(file) as f:
    translated = ''
    for symbol in f:
            print(symbol)
            num = (ord(symbol)-k) % 126

            if num < 32:
                    num += 95
            translated += chr(num)
    print(translated)

我的密码不包含空格

谢谢

1 个答案:

答案 0 :(得分:2)

您的文件中没有任何内容可以拆分(因为没有空格或任何其他分隔符)。如果您的文件不是很大,请将其内容作为字符串读取,然后将该字符串作为字符集处理:

data = open(file).read()
for char in data:
     #do something with your char, like ord(char)

如果文件很大,请使用.read(n)分段阅读,您仍然可以使用字符串。