# -*-coding:utf-8 -*- # coding:utf-8 # !/usr/bin/env python # !@Author : chaiwenda # @File : .py # ------------解决了中文乱码的问题------------------------------- import os import codecs import chardet import sys reload(sys) sys.setdefaultencoding("utf-8") file_path = 'E:/PycharmProjects/Screen_shot/picture_test/shot' mes = [] dirs = [] if os.path.exists(file_path): dirs = os.listdir(file_path) # 循环创建N个列表 messages = [['']] # messages[[]] n = 0 print('------test:message[0]------') print(len(messages[0])) print(messages[0]) for dir in dirs: n += 1 for K in range(1, n + 1): MSG_Name = "{0}_{1}".format('messages', K) MSG_Name = [] messages.append(MSG_Name) # messages[[],[],[],[],[],[],[],[],[],[]] # 展示存储信息前的列表嵌套状态 print('-------test1---------') # print:message[1]--message[n] print('['), for i in range(1, n + 1): print(messages[i]), print(']'), print('') dirs.sort() # 给文件排序 # for i in range(1, n + 1): # Write_to_list(file_path, messages[i]) print('进入函数') i = 0 for dr in dirs: # iterater name_1--name_N # 编辑动态路径名文件 File_path_name = "{0}/{1}".format(file_path, dr) if os.path.exists(File_path_name): # 判断如果当前文件存在 file = open(File_path_name, "rb") # 要有"rb",如果没有这个的话,默认使用gbk读文件 buf = file.read() result = chardet.detect(buf) encoding = result["encoding"] content = file.readlines() print('-----编码是:----------') print(result["encoding"]) file.close() # 用codecs提供的open方法来指定打开的文件的语言编码 # 它会在读取的时候自动转换为内部unicode bfile = codecs.open(File_path_name, 'r', encoding) lines = bfile.readlines() bfile.close() k = 0 mes.append(lines[0].strip()) print('lines[0]=' + str(lines[0])) for line in lines[1:]: if line != '\n': mes.append(line.strip()) k += 1 print('一共有%s行字符' % k) for m in mes: messages[i].append(m) mes = [] i += 1 # text 输出每个页面的存储信息 print('----------test2:-----------\n'), for mess in messages: print('['), for m in mess: print('[' + str(m) + ']'), print(']') # print('------test:message[0]------') # print(len(messages[0]))# print(messages[0]
# coding:utf-8 # !/usr/bin/env python # !@Author : chaiwenda # @File : .py import os import codecs import chardet code_list = ['utf-8', 'GB2312', 'gbk'] file_path = 'E:/PycharmProjects/Screen_shot/picture_test/shot' mes = [] dirs = [] if os.path.exists(file_path): dirs = os.listdir(file_path) # 循环创建N个列表 messages = [['']] # messages[[]] n = 0 print('------test:message[0]------') print(len(messages[0])) print(messages[0]) for dir in dirs: n += 1 for K in range(1, n + 1): MSG_Name = "{0}_{1}".format('messages', K) MSG_Name = [] messages.append(MSG_Name) # messages[[],[],[],[],[],[],[],[],[],[]] # 展示存储信息前的列表嵌套状态 print('-------test1---------') # print:message[1]--message[n] print('['), for i in range(1, n + 1): print(messages[i]), print(']'), print('') dirs.sort() # 给文件排序 # for i in range(1, n + 1): # Write_to_list(file_path, messages[i]) print('进入函数') i = 0 for dr in dirs: # iterater name_1--name_N # 编辑动态路径名文件 File_path_name = "{0}/{1}".format(file_path, dr) if os.path.exists(File_path_name): # 判断如果当前文件存在 file_object = open(File_path_name, 'r') lines = file_object.readlines() # type = chardet.detect(lines) # lines = lines.decode(type["encoding"]) file_object.close() mes.append(lines[0].strip()) for line in lines[1:]: if line != '\n': mes.append(line.strip()) file_object.close() # test3 将当前文本信息保存在message中并输出 i += 1 for m in mes: messages[i].append(m) mes = [] # text 输出每个页面的存储信息 print('----------test2:-----------\n'), for i in range(0, n+1): print(messages[i]) # print('------test:message[0]------') # print(len(messages[0])) # print(messages[0])
中文乱码问题代码
最新推荐文章于 2025-06-15 12:06:06 发布