python CSV: код c не может декодировать байт 0x9d - PullRequest
0 голосов
/ 18 апреля 2020

У меня много 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
...