我有大文件包含密文。密码是这样连接的
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)
我的密码不包含空格
谢谢
答案 0 :(得分:2)
您的文件中没有任何内容可以拆分(因为没有空格或任何其他分隔符)。如果您的文件不是很大,请将其内容作为字符串读取,然后将该字符串作为字符集处理:
data = open(file).read()
for char in data:
#do something with your char, like ord(char)
如果文件很大,请使用.read(n)
分段阅读,您仍然可以使用字符串。