#!/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: 因为是读取的图片所以存储下来以后与原图片不符
希望各位可以帮我解决一下这个问题,谢谢!