【问题标题】:How to split connected letters in a file如何拆分文件中的连接字母
【发布时间】:2017-02-08 12:22:58
【问题描述】:

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

QJFQFJDOVRVLHSVUJNHTZDGLDOVGSAYFKFPSAJSOEGXCDHCDDEWGTUUFOVDGQUJD

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

我正在尝试此代码,但收到此错误消息

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

TypeError: ord() 预期长度为 1 的字符串,但找到了列表"

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() 函数之前,我收到了以下错误消息:

"TypeError: ord() 需要一个字符,但找到了长度为 6 的字符串"

使用此代码:

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)

我的密码不包含空格

谢谢

【问题讨论】:

  • s 是文件中的行。 . .您需要对其进行迭代,python 允许您直接迭代字符串(即for _ in s

标签: python encryption split


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多