# coding:utf-8
# !/usr/bin/env python
# !@Author : chaiwenda
# @File : .--------中文有乱码问题-------------
import os
import codecs
import chardet
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])
# -*-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])