Python读写中文注意事项

来源:互联网 发布:网络用语立场什么意思 编辑:程序博客网 时间:2024/06/18 15:47
  1. 遍历目录,方法如下:
    方法一:
import ospath = 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.pathlistFile = os.listdir(r'E:\txt')  #listFile是列表存储当前文件夹下所有文件的名字for i in listFile:    print i.decode('gbk')  #.decode('gbk')是解决中文显示乱码问题
  1. 读中文txt文件:
import osimport codecs#开头重载编码import import sysreload(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)

读或者写入中文与操作英文不同,要注意设置编码格式,否则会出现乱码。

2 0
原创粉丝点击