python codecs模块 ---处理数据写入文件时会有编码不统一的问题

我们用open方法打开文件有时候会有一些问题,因为open打开文件只能写入str类型,而不会管字符串是什么编码方式。

示例:

>>> fr = open(‘test.txt‘,‘a‘)

>>> line1 = "我爱祖国"

>>> fr.write(line1)

有编码不统一的时候,此时写入open方式打开的文件就有问题了。

>>> line2 = u‘我爱祖国‘

>>> fr.write(line2)

Traceback (most recent call last):

File "<pyshell#4>", line 1, in <module>

fr.write(line2) UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-11: ordinal not in range(128)

可以使用codecs.open,

>>> import codecs

>>> fw = codecs.open(‘test1.txt‘,‘a‘,‘utf-8‘)

>>> fw.write(line2)

>>>

原文地址:https://www.cnblogs.com/hixiaowei/p/9056615.html

时间: 2024-10-13 04:47:55

python codecs模块 ---处理数据写入文件时会有编码不统一的问题的相关文章

Redis 中文入库成功,读取数据写入文件乱码问题

最近需要用到redis ,但是在编码这个问题上,纠结了很久. 需求 : 每天一个进程将中文文件入库到redis中(不定时更新) ,另外几个进程读取redis中的信息 ,并处理数据结果. 使用的redis模块 : redis-py 问题 : 入库正常,读取数据成功,以GBK编码写入文件出现异常. 通过以下参数连接 redis : client  = redis.StrictRedis(host='localhost', port=6379, db=0, password="***") 从

用python在后端将数据写入到数据库并读取

用python在后端将数据写入到数据库: # coding:utf-8 import pandas as pd from sqlalchemy import create_engine # 初始化数据库连接,使用pymysql模块 # MySQL的用户:root, 密码:147369, 端口:3306,数据库:mydb engine = create_engine('mysql+pymysql://root:[email protected]:3306/python1') import nump

Pandas dataframe数据写入文件和数据库

Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作,DataFrame是一张多维的表,大家可以把它想象成一张Excel表单或者Sql表.之前这篇文章已经介绍了从各种数据源将原始数据载入到dataframe中,这篇文件介绍怎么将处理好的dataframe中的数据写入到文件和数据库中. 首先我们通过二维ndarray创建一个简单的DataFrame: 1 2 3 4 5 6 7 8 import pandas as pd imp

PHP内置函数file_put_content(),将数据写入文件,使用FILE_APPEND 参数进行内容追加

file_put_contents(fileName,data,flags,context) 入参说明: 参数 说明 fileName 要写入数据的文件名 data 要写入的数据.类型可以是 string,array(但不能为多维数组),或者是 stream 资源 flags 可选,规定如何打开/写入文件.可能的值: FILE_USE_INCLUDE_PATH:检查 filename 副本的内置路径 FILE_APPEND:在文件末尾以追加的方式写入数据 LOCK_EX:对文件上锁 contex

运用BufferedWriter把数据写入文件

public class WriteReadFiles { private static Logger log = LoggerFactory.getLogger(WriteReadFiles.class); public boolean writeFile(String content) { String filename = "E:/java_src/MVCDemo3/MVCDemo3/accounts.txt"; try { File f = new File(filename)

Java把double数据写入文件中

public class ReadOrWriteObject { private FileInputStream fileIns = null ;//文件输入流 private FileOutputStream fileOts = null;//文件输出流 private ObjectInputStream objectIns = null ;//对象输入流 private ObjectOutputStream objectOts = null ;//对象输出流 private String f

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

Python从数据库读取数据写入json格式文件

#!/usr/bin/python# -*- coding: UTF-8 -*-########################################################################## File Name: addreplace.py# Author: yuhaitao# mail: [email protected]# Created Time: Fri 31 Mar 2017 07:05:13 PM PDT#####################

打印流 -可将数据写入文件/可改变输出方向

打印流 java.lang.Object 继承者 java.io.OutputStream 继承者 java.io.FilterOutputStream 继承者 java.io.PrintStream 与其他输出流不同,PrintStream 永远不会抛出 IOException: 打印的所有字符都使用平台的默认字符编码转换为字节.有很多OutputStream的成员方法 构造方法: PrintStream(File file) 输出的目的地是一个文件: PrintStream(File fil