解决python写入带有中文的字符到文件错误的问题

在python写脚本过程中需要将带有中文的字符串内容写入文件,出现了报错的现象。

----------------------------

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

----------------------------

经过网上搜索出错原因得到结果:

python中如果使用系统默认的open方法打开的文件只能写入ascii吗,如果要写入中文需要用到codecs模块 (使用了该方法,问题解决)

# -*- coding: utf-8 -*-

import codecs
content = u'你好,北京欢迎你'
f = codecs.open('aaa.txt','w','utf-8')
f.write(content)

还有第二种方法(没试)

字符集的问题,在文件前加两句话:

reload(sys)
sys.setdefaultencoding( "utf-8" )

以上这篇解决python写入带有中文的字符到文件错误的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python 错误和异常代码详解

    程序中的错误一般被称为 Bug,无可否认,这几乎总是程序员的错... 程序员的一生,始终伴随着一件事 - 调试(错误检测.异常处理).反反复复,最可怕的是:不仅自己的要改,别人的也要改...一万头草泥马奔腾而过! 错误 程序错误,主要分为三类: 语法错误 逻辑错误 运行时错误 语法错误 语法错误(也称:解析错误):是指不遵循语言的语法结构引起的错误(程序无法正常编译/运行). 在编译语言(例如:C++)中,语法错误只在编译期出现,编译器要求所有的语法都正确,才能正常编译.不过对于直译语言(例如:

  • Python初学者常见错误详解

    前言 Python 以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照 Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写 Python 代码,有一个外国小伙总结了一些大家常犯的错误,,我把他翻译过来并在原来的基础补充了我的一些理解,希望可以让你避开这些坑. 0.忘记写冒号 在 if.elif.else.for.while.class.def 语句后面忘记添加 ":" if spam == 42 print('Hello!'

  • python新手经常遇到的17个错误分析

    1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 "SyntaxError :invalid syntax") 该错误将发生在类似如下代码中: if spam== 42 print('Hello!') 2) 使用 = 而不是 ==(导致"SyntaxError: invalid syntax") = 是赋值操作符而 == 是等于比较操作.该错误发生在如下代码中: if spam= 42: pr

  • 解决python测试opencv时imread导致的错误问题

    如下所示: import cv2 import numpy as np img = cv2.imread("1.jpg")//图片和代码在同个目录,改为相对路径,解决由imread引起的打不开图片或找不到图片的路径问题 cv2.imshow("1",img) cv2.waitKey(10000) D:\>my.py OpenCV Error: Assertion failed (size.width>0 && size.height>

  • 解决python升级引起的pip执行错误的问题

    centos6.x默认安装的python为2.6版本,今天换成了3.5版本 这里不再讲如何升级python版本 在安装完新的版本后,之前安装的插件都不能使用了,再用pip进行安装提示已经安装过,但是运行程序依旧在import出报错. 执行升级命令 python -m pip install -U pip 升级成功,但依旧在运行程序时报找不到import的插件 于是用python -V确认一下版本. 确实是python3.5没问题,所以应该是pip指向的问题 查看/usr/local/bin目录下

  • 解决Python print 输出文本显示 gbk 编码错误问题

    前阵子想爬点东西,结果一直提示错误UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position,在网上一查,发现是 Windows 的控制台的问题.控制台的编码是 GBK,Python 是 UTF-8,造成了冲突.下面给出三种解决方法. 第一种方法:直接替换出错的内容 import requests url = 'https://blog.csdn.net/jianhong1990/article/detail

  • Python运行的17个时新手常见错误小结

    1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 "SyntaxError :invalid syntax") 该错误将发生在类似如下代码中: 复制代码 代码如下: if spam == 42 print('Hello!') 2)使用 = 而不是 ==(导致"SyntaxError: invalid syntax") = 是赋值操作符而 == 是等于比较操作.该错误发生在如下代码中: 复制代码

  • 解决python删除文件的权限错误问题

    使用os.remove删除文件,总是遇到错误:PermissionError: WinError 找了很久没找到什么原因,以为是windows系统的问题,最后发现是删除了一个没有关闭的文件引起的. 代码如下: with open(front_pic_path,'rb') as f: pic_base64 = base64.b64encode(f.read()) #f.close() os.remove(front_pic_path) 后来我增加了那行f.close()就OK啦! 以上这篇解决py

  • 解决python写入带有中文的字符到文件错误的问题

    在python写脚本过程中需要将带有中文的字符串内容写入文件,出现了报错的现象. ---------------------------- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) ---------------------------- 经过网上搜索出错原因得到结果: python中如果使用系统默认的open方法打开的文件只能写入asc

  • 解决python爬虫中有中文的url问题

    如果URL中存在中文,而你却不对它做任何处理,他不会达到你所想的那样,因此我们需要将中文部分进行处理,要用到urllib.parse模块中的quote将中文转化成URL所需的编码,url中的中文要单独处理,不能中英文全部合在一起处理(因为一部分的特殊字符也会被处理掉). import urllib.parse word='龙' word=urllib.parse.quote(word) url='https://baike.baidu.com/search/word?word=%s'%word

  • 解决python写入mysql中datetime类型遇到的问题

    刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值.python程序中有对应的一个datetime变量dt. 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中exTime字段里. 问题,如何写入?调试时,总是无法写入. 运行环境:windows10 python 3.6 mysql5.6.38 运行结果提示: Proce

  • 解决Python数据可视化中文部分显示方块问题

    一.问题 代码如下,发现标题的中文显示的是方块 import matplotlib import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.set(xlim=[1.5, 6.5], ylim=[-4, 5], title='画图小例子',ylabel='yvalue', xlabel='xvalue') plt.show() 如下图 二.解决方法 一般数据可视化使用matplotlib库,设置

  • 解决pandas中读取中文名称的csv文件报错的问题

    之前在使用Pandas处理csv文件时,发现如果文件名为中文,则会报错: OSError: Initializing from file failed 后来在一位博主的博客中解释了是read_csv中engine参数的问题,默认是C engine,在读取中文标题时有可能会出错(在我这是必现),解决方法是将engine换为Python(官方文档的说法是C engine更快但是Python engine功能更完备),具体写法: df.read_csv('filename', engine='pyth

  • 解决python便携版无法直接运行py文件的问题

    关联:windows下无前缀直接运行.py文件 关联:便携版python无法直接运行python脚本的问题 症状:直接运行py脚本发现无法传递参数. 在python便携版可正常使用的情况下,python sqlmap.py - u xxx 可正常使用 指定py文件使用python.exe打开时,直接运行 sqlmap.py - u xxx 发现无法传递参数. 原因:注册表键值中缺少传递参数 指定便携版python打开py脚本时,注册表中打开方式键值中少了传递参数的功能 本需要 C:/python

  • Python read函数按字节(字符)读取文件的实现

    文件对象提供了 read() 方法来按字节或字符读取文件内容,到底是读取宇节还是字符,则取决于是否使用了 b 模式,如果使用了 b 模式,则每次读取一个字节:如果没有使用 b 模式,则每次读取一个字符.在调用该方法时可传入一个整数作为参数,用于指定最多读取多少个字节或宇符. 例如,如下程序采用循环读取整个文件的内容: f = open("read_test.py", 'r', True) while True: # 每次读取一个字符 ch = f.read(1) # 如果没有读到数据,

  • python写入数据到csv或xlsx文件的3种方法

    本文实例为大家分享了三种方式使用python写数据到csv或xlsx文件,供大家参考,具体内容如下 第一种:使用csv模块,写入到csv格式文件 # -*- coding: utf-8 -*- import csv with open("my.csv", "a", newline='') as f: writer = csv.writer(f) writer.writerow(["URL", "predict", "

  • 解决python 两个时间戳相减出现结果错误的问题

    如下所示: 两个时间相差一整天,结果却是相差时间为零 !!!! 这里是使用错误, .seconds只会计算 小时分钟秒 部分之间的差值 在这里使用total_seconds() 才是计算两个时间戳之间的相差时间 补充:Python 时间字符串.时间戳之间的转换,时间的加减 1.字符串转时间戳 import time str_time = "20200713203740" time_temp = time.strptime(str_time, "%Y%m%d%H%M%S&quo

  • 解决Python下json.loads()中文字符出错的问题

    Python:2.7 IDE:Pycharm5.0.3 今天遇到一个问题,就是在使用json.load()时,中文字符被转化为Unicode码的问题,解决方案找了半天,无解.全部代码贴出,很简单的一个入门程序,抓的是有道翻译的,跟着小甲鱼的视频做的,但是他的版本是python3.4,所以有些地方还需要自己改,不多说,程序如下: import urllib#python2.7才需要两个urllib url="http://fanyi.youdao.com/translate?smartresult

随机推荐