您的位置:首页 > 编程语言 > Python开发

Python读写中文注意事项

2017-04-25 13:30 267 查看
遍历目录,方法如下:

方法一:

import os
path = r'E:\temp'
for parentpath,dirnames,filenames in os.walk(path):
"""三个参数:parentpath:父目录;dirnames:所有文件夹的名字(不含路径);filenames:所有文件名字.
path表示自己要遍历的目录路径,这里是要读temp文件夹下的内容"""
for file in filenames:
fullpath=os.path.join(dirpath,file)
print fullpath.decode('gbk')  ##.decode('gbk')是解决中文显示乱码问题


方法二:

import os.path
listFile = os.listdir(r'E:\txt')  #listFile是列表存储当前文件夹下所有文件的名字
for i in listFile:
print i.decode('gbk')  #.decode('gbk')是解决中文显示乱码问题


读中文txt文件:

import os
import codecs
#开头重载编码
import import sys
reload(sys)
sys.setdefaultencoding('utf-8')
"""
此函数是自己处理文档过程中定义,实际过程中可以按照自己要求来定义.
参数:filepath:表示当前文件所在文件夹路径
txtName:表示当前要读取的中文文件的名字
返回:返回当前文件的所有内容,表示为字符串
"""
def readTxt(filepath,txtName):
path = os.path.join(filepath, txtName)
print docName
f = codecs.open(path, "rb",'gbk')##path就是文件的路径加文件名字.
"""使用codecs.open这种方法可以指定一个编码打开文件,使用这个方法打开的文件读取返回的将是unicode,不会报错;如果使用open(path, 'rb'),在读取内容的时候下面输出会是乱码"""
fullText = f.readlines()  # 读取全部内容
str=''
for j in fullText:
str = str + j
return str


3.写中文csv文件:

其实写csv或者txt基本套路相同。这里我定义了一个写csv函数

“””

参数:

infoList:表示要写的内容,为list类型,每一行存储为一个list元素

“”“

def writeStdXls(infoList):
path = r"E:\918\4-12\curr\result\stdResult.csv" #当前要写入的文件路径
csvFile = file(path, 'wb')#如果文件存在会以写的模式打开,如果文件不存在会直接新建一个文件
csvFile.write(codecs.BOM_UTF8)##这句话是设置写入中文的编码,不然会写入一堆乱码
writer = csv.writer(csvFile,dialect='excel')
headers = ['公司名称','前言','2.企业质量管理','企业质量理念','质量管理机构','质量管理体系','质量安全风险管理','3.质量诚信管理','质量承诺','运作管理',
'营销管理','4.质量管理基础 ','标准管理','计量管理','认证管理','检验检测管理','5.产品质量责任','产品质量水平','产品售后责任','企业社会责任','质量信用记录','结束语','Flag']
writer.writerow(headers)
for i in infoList:
writer.writerow(i)


读或者写入中文与操作英文不同,要注意设置编码格式,否则会出现乱码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: