首页 > 解决方案 > python csv:编解码器无法解码字节0x9d

问题描述

我有许多 CSV 文件,想在一个 CSV 文件中处理所有这些文件,前两个文件已读取,但第三个文件未读取,但 Unicode 出现此错误,我搜索了很多有关解决方案但没有找到一个处理所有文件。

'''''''''''''''''''''''''''''''''''''

错误

UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 49209: character maps to <undefined>

代码:


folders = os.listdir("D:\\python neww\\ali_express\\check_csv")
x= 0
while x < len(folders):
    files = os.listdir('D:\\python neww\\ali_express\\check_csv\\{}'.format(folders[x]))
    print(folders[x])
    title_list   =    []
    image_list   =    []
    gallery_list =    []
    new_list     =    []
    old_list     =    []
    link_list    =    []
    brand_list   =    []
    y=0
    while y < len(files):

        file= 'D:\\python neww\\ali_express\\check_csv\\{}\\{}'.format( folders[x] , files[y] )
        rawdata = open(file, 'rb').read()  # READ CSV TO KNOW TYPE OF FILE
        result = chardet.detect(rawdata)
        charenc = result['encoding']  # GET CODE OF FILE

        df = pd.read_csv(file, encoding=charenc)  # OPEN CSV

        check= 0
        newww_column = df['salePrice($)']

        print(len(df['Product Name']))
        while check < len(newww_column):
            if pd.isna(newww_column[check]):
                df = df.replace('', np.nan)
                df = df.dropna()
                print(len(df['Product Name']))

            check += 1

        try:
            title_column = df['Product Name'] # READ TITLE IN CSV
            for q in title_column:
                title_list.append(q)


            image_column = df['Product Image Url'] # READ IMAGES IN CSV
            for w in image_column:
                image_list.append(w)


            gallery_column = df['allImageUrls(5<)'] # READ GALLERY IN CSV
            for e in gallery_column:
                gallery_list.append(e)


            old_column = df['originalPrice($)'] # READ OLD PRICES IN CSV
            for r in old_column:
                old_list.append(r)


            new_column = df['salePrice($)'] # READ PRICES IN CSV
            for t in new_column:
                new_list.append(t)


            link_column = df['Click url'] # READ ALL LINKS IN CSV

            for o in link_column:
                link_list.append(o)
                brand_list.append('ali express')

        except:
            print('')
        y +=1

标签: pythonseleniumcsvunicode

解决方案


推荐阅读