Python Decode()、len()、斯堪的纳维亚Iso字符串打印正确,但长度错误

Python Decode()、len()、斯堪的纳维亚Iso字符串打印正确,但长度错误,python,string,decode,encode,string-length,Python,String,Decode,Encode,String Length,svenskaOrd是一个瑞典单词列表。 我想用字母打印单词的长度,并且只有在长度大于等于4的情况下才打印格式正确的单词。 只有格式是正确的 swedishWords = open("svenskaOrd.txt","r") for line in swedishWords: if(len(line.decode("iso8859_10")) >= 4): print(len(line.decode("iso8859_10"))) print(li

svenskaOrd是一个瑞典单词列表。 我想用字母打印单词的长度,并且只有在长度大于等于4的情况下才打印格式正确的单词。 只有格式是正确的

swedishWords = open("svenskaOrd.txt","r")

for line in swedishWords:
    if(len(line.decode("iso8859_10")) >= 4):
        print(len(line.decode("iso8859_10")))
        print(line.decode("iso8859_10"))
输出:

十八 öroninflammation

五, 奥尔特

十, örtagård


默认情况下,
打开
以文本模式打开文件。这会将原始字节解码为文本。您不需要在文本模式下打开文件,然后解码文本增益。这没有道理。Python 3甚至不允许您这样做,并且会报告一个错误(因为
str
没有
decode
方法)

如果您知道您的文本文件具有给定的编码,则应将其指定给
open

swedishWords = open("svenskaOrd.txt", "r", encoding="iso8859_10")

for line in swedishWords:
    if(len(line) >= 4):
        print(len(line))
        print(line)
如果您真的想对原始字节进行操作,那么以原始模式打开文件并解码每一行

swedishBytes = open("svenskaOrd.txt", "rb")

默认情况下,
open
以文本模式打开文件。这会将原始字节解码为文本。您不需要在文本模式下打开文件,然后解码文本增益。这没有道理。Python 3甚至不允许您这样做,并且会报告一个错误(因为
str
没有
decode
方法)

如果您知道您的文本文件具有给定的编码,则应将其指定给
open

swedishWords = open("svenskaOrd.txt", "r", encoding="iso8859_10")

for line in swedishWords:
    if(len(line) >= 4):
        print(len(line))
        print(line)
如果您真的想对原始字节进行操作,那么以原始模式打开文件并解码每一行

swedishBytes = open("svenskaOrd.txt", "rb")

包括换行符和可能的其他空格。包括换行符和可能的其他空格。