Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误';ascii';编解码器可以';t解码第11位的字节0x90:序号不在范围(128)内;_Python_Csv - Fatal编程技术网

Python错误';ascii';编解码器可以';t解码第11位的字节0x90:序号不在范围(128)内;

Python错误';ascii';编解码器可以';t解码第11位的字节0x90:序号不在范围(128)内;,python,csv,Python,Csv,我在学校做计算,但他们的python版本与我在家里的版本不同,每次我试图在家里的电脑上运行我在学校做的文件时,它都会显示“我的电脑” UnicodeDecodeError:“ascii”编解码器无法解码位置中的字节0x90 11:序号不在范围内(128)” 谢谢你的帮助 这是到目前为止我的代码。 classc = int(input("WHich classes scores do you want to see 1 or 2 or 3")) if classc ==1: import

我在学校做计算,但他们的python版本与我在家里的版本不同,每次我试图在家里的电脑上运行我在学校做的文件时,它都会显示“我的电脑”

UnicodeDecodeError:“ascii”编解码器无法解码位置中的字节0x90 11:序号不在范围内(128)”

谢谢你的帮助

这是到目前为止我的代码。

classc = int(input("WHich classes scores do you want to see 1 or 2 or 3"))
if classc ==1:
    import csv


    print("H")
    with open("class1.csv","r") as csv1file:
        csvfile1reader = csv.reader(csv1file)
        csv1 = []
        for row in csvfile1reader:
            if len (row) != 0:
                csv1 = csv1 + [row]



        print("Here are the scores for class1 in aphabetical order!")
    import operator

    hl = open ("class1.csv","r")

    csvo = csv.reader(hl,delimiter='0')

    sort1 = sorted(csv1,key=operator.itemgetter(0))
    for row in sort1:
        print (row)
    print("these are the highest to lowest score")    
h2 = open ("class1.csv","r")
csvo = csv.reader(hl,delimiter=' ')
sort2 = sorted(csv1,key=operator.itemgetter(1))

for row in sort2:
        print (row)
import csv

with open('class1.csv') as handle:
    reader = csv.reader(handle)
    next(reader, None)
    for row in reader:
        user, *scores = row
        average = sum([int(score) for score in scores]) / len(scores)
        print (
            "{user} has average of {average}".format(user=user, average=average)
        )

0x90
确实超出了ASCII的范围,它只包括
0x00
0x7f
。在ISO-8859系列中,该文件可能采用某种Unicode编码,也可能采用某种8位编码。一旦您发现了这一点,请使用
编解码器
模块打开您的文件。假设您的编码是ISO-8859-1:

with codecs.open('class1.csv', encoding='iso-8859-1') as handle:
    reader = csv.reader(handle)

请您发布完整的错误消息,包括行号?…和Python版本,因为这可能会影响如何正确处理unicode。选择8859-1通常是一个很好的猜测,但如果它是错误的,您不会得到任何警告,只是不正确的数据。比胡乱猜测更好的是,OP可以在单独的问题中实际找出正确的编码,可能有更多的信息,如本文中所解释的。