问题:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

#!/usr/bin/env python3
# encoding: utf-8

import os

def mv_img(path):
    # path_list 为第一层文件列表
    path_list = os.listdir(path)
    for i in path_list:
        if i == '刘天':
            continue
        path_deep1 = os.path.join(path,i)
        # path1_list第二层文件列表
        path1_list = os.listdir(path_deep1)
        for j in path1_list:
            if not j:
                continue
            path_deep2 = os.path.join(path_deep1,j)
            path2_list = os.listdir(path_deep2)
            print('path_deep2', path_deep2)
            print('path2_list', path2_list)
            for k in path2_list:
                if not k:
                    continue
                # path_deep3 = os.path.join(path_deep2,k)
                # path3_list = os.listdir(path_deep3)
                # print('path_deep3',path_deep3)
                # print('path3_list',path3_list)
                # for item in path3_list:
                #     if not item:
                #         continue
                with open(os.path.join(path_deep2,k),'r')as f1:
                    with open(os.path.join(path_deep1,k),'w')as f2:
                        img_data = f1.read()
                        f2.write(img_data)
                        print('移动位置成功!')






if __name__ == '__main__':
    path = '/media/guangcui/LENOVO_USB_HDD/test'
    mv_img(path)

运行以上代码段会出现:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

参考了一些博客并没有解决:

  方法1: 程序开头加备注,声明编码方式

  方法2: 改变 with open('encoding ='ISO-8859-1')as f:  因为是读取的图片所以存储下来以后与原图片不符

  希望各位可以帮我解决一下这个问题,谢谢!

发布了77 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_24137739/article/details/85644051