Python中使用中文

使用Python制作中文词云 使用Python制作中文词云0 素材 & 库 准备0.1 文本和图片0.2 库准备步骤1. 准备工作2. 文本处理2.1 读取文本2.2 分词和过滤2.3 统计词频:3. 制作并画出词云3.1 默认颜色3.2 设置背景颜色3.3 从图片提取颜色完整代码 0 素材 & 库 准备 0.1 文本和图片 制作词云之前, 我们需要事先准备以下素材: 一篇文章, 以文本文件 (.txt) 格式保存. 停用词表 (英文非必要, 中文需要自己准备, 可以从这里 (GitHub)下载). 避免中文乱码的. 阅读详情

python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识。当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了。

先来看看python的版本:
>>> import sys
>>> sys.version
'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]'

(一)
用记事本创建一个文件ChineseTest.py,默认ANSI:
s = "中文"
print s

测试一下瞧瞧:
E:/Project/Python/Test>python ChineseTest.py
  File "ChineseTest.py", line 1
SyntaxError: Non-ASCII character '/xd6' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho
n.org/peps/pep-0263.html for details

偷偷地把文件编码改成UTF-8:
E:/Project/Python/Test>python ChineseTest.py
  File "ChineseTest.py", line 1
SyntaxError: Non-ASCII character '/xe4' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho
n.org/peps/pep-0263.html for details

无济于事。。。
既然它提供了网址,那就看看吧。简单地浏览一下,终于知道如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明。把ChineseTest.py文件的编码重新改为ANSI,并加上编码声明:
# coding=gbk
s = "中文"
print s

再试一下:
E:/Project/Python/Test>python ChineseTest.py
中文

正常咯:)
(二)
看一看它的长度:
# coding=gbk
s = "中文"
print len(s)
结果:4。
s这里是str类型,所以计算的时候一个中文相当于两个英文字符,因此长度为4。
我们这样写:
# coding=gbk
s = "中文"
s1 = u"中文"
s2 = unicode(s, "gbk") #省略参数将用python默认的ASCII来解码
s3 = s.decode("gbk") #把str转换成unicode是decode,unicode函数作用与之相同
print len(s1)
print len(s2)
print len(s3)
结果:
2
2
2
(三)
接着来看看文件的处理:
建立一个文件test.txt,文件格式用ANSI,内容为:
abc中文
用python来读取
# coding=gbk
print open("Test.txt").read()
结果:abc中文
把文件格式改成UTF-8:
结果:abc涓枃
显然,这里需要解码:
# coding=gbk
import codecs
print open("Test.txt").read().decode("utf-8")
结果:abc中文
上面的test.txt我是用Editplus来编辑的,但当我用Windows自带的记事本编辑并存成UTF-8格式时,
运行时报错:
Traceback (most recent call last):
  File "ChineseTest.py", line 3, in <module>
    print open("Test.txt").read().decode("utf-8")
UnicodeEncodeError: 'gbk' codec can't encode character u'/ufeff' in position 0: illegal multibyte sequence

原来,某些软件,如notepad,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。
因此我们在读取时需要自己去掉这些字符,python中的codecs module定义了这个常量:
# coding=gbk
import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
 data = data[3:]
print data.decode("utf-8")
结果:abc中文

(四)一点遗留问题
在第二部分中,我们用unicode函数和decode方法把str转换成unicode。为什么这两个函数的参数用"gbk"呢?
第一反应是我们的编码声明里用了gbk(# coding=gbk),但真是这样?
修改一下源文件:
# coding=utf-8
s = "中文"
print unicode(s, "utf-8")
运行,报错:
Traceback (most recent call last):
  File "ChineseTest.py", line 3, in <module>
    s = unicode(s, "utf-8")
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data
显然,如果前面正常是因为两边都使用了gbk,那么这里我保持了两边utf-8一致,也应该正常,不至于报错。
更进一步的例子,如果我们这里转换仍然用gbk:
# coding=utf-8
s = "中文"
print unicode(s, "gbk")
结果:中文
翻阅了一篇英文资料,它大致讲解了python中的print原理:
When Python executes a print statement, it simply passes the output to the operating system (using fwrite() or something like it), and some other program is responsible for actually displaying that output on the screen. For example, on Windows, it might be the Windows console subsystem that displays the result. Or if you're using Windows and running Python on a Unix box somewhere else, your Windows SSH client is actually responsible for displaying the data. If you are running Python in an xterm on Unix, then xterm and your X server handle the display.

To print data reliably, you must know the encoding that this display program expects.

简单地说,python中的print直接把字符串传递给操作系统,所以你需要把str解码成与操作系统一致的格式。Windows使用CP936(几乎与gbk相同),所以这里可以使用gbk。
最后测试:
# coding=utf-8
s = "中文"
print unicode(s, "cp936")
结果:中文
<script><!-- d(["mb","/u003cspan class/u003dsg/u003e/u003cbr/u003e-- /u003cbr/u003e/u003ca href/u003d/"http://www.2maomao.com/blog/" target/u003d/"_blank/" onclick/u003d/"return top.js.openextlink(window,event,this)/"/u003ehttp://www.2maomao.com/blog/u003c/a/u003e/u003cbr/u003e/n--~--~---------~--~----~------/u003cwbr/u003e------~-------~--~----~/u003cbr/u003e/n来自: `python-cn`~/u003cwbr/u003echinesepythonusergroup 列表/n /u003cbr/u003e 发言: /u003ca href/u003d/"mailto:python-cn@googlegroups.com/" target/u003d/"_blank/" onclick/u003d/"return top.js.openextlink(window,event,this)/"/u003epython-cn@googlegroups.com/u003c/a/u003e | 退订: /u003ca href/u003d/"mailto:python-cn-unsubscribe@googlegroups.com/" target/u003d/"_blank/" onclick/u003d/"return top.js.openextlink(window,event,this)/"/u003epython-cn-unsubscribe@/u003cwbr/u003egooglegroups.com/u003c/a/u003e/n /u003cbr/u003e 详情: /u003ca href/u003d/"http://groups.google.com/group/python-cn/" target/u003d/"_blank/" onclick/u003d/"return top.js.openextlink(window,event,this)/"/u003ehttp://groups.google.com//u003cwbr/u003egroup/python-cn/u003c/a/u003e /u003cbr/u003e -~----------~----~----~----~--/u003cwbr/u003e----~----~------~--~---/u003cbr/u003e/n/u003cbr/u003e/n/u003c/span/u003e",0] ); //--></script> ========================

本文转自Python邮件列表:[CPyUG:47963] python unicode 和 中文 (zz,不知道原作者了)

chatgpt赋能python:如何把Python改成中文:提高中文用户的使用体验 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。 阅读详情

相关推荐

Python语言的中文支持

通过使用Unicode字符串、中文变量名和函数名、处理中文输入和输出以及使用第三方库,我们可以轻松地在Python中编写中文代码和处理中文文本。Python是一种广泛使用的编程语言,它具有简单易学的语法和丰富的生态系统。虽然Python最初是使用英文编写的,但是随着其在全球范围内的普及,对中文的支持也变得越来越重要。幸运的是,Python提供了多种方法来实现中文的支持和处理。如果需要更高级的中文处理功能,可以使用一些第三方库,例如jieba和ChineseNLP。这将输出:你好,世界!

学习使你进步。 1250

python在图片中显示中文(PIL)

利用python在图片上显示中文汉字

qq_41917697的博客 3625

如何在Python中使用中文编程

要在Python中使用中文编程,首先需要确保你的编码环境支持中文字符。在Python 3中,字符串默认就是Unicode编码,所以你可以直接在字符串中使用中文字符。需要注意的是,虽然Python支持中文编程,但在实际开发中,为了保持代码的可读性和可维护性,建议还是使用英文作为主要的编程语言。中文只应作为变量名、函数名或注释中的补充,以提高代码的可理解性。Python是一种广泛使用的编程语言,它支持使用中文进行编程。在本文中,我们将探讨如何在Python中使用中文编写代码,并提供相应的示例代码。

CodeShiftZ的博客 1085

python如何解决中文乱码问题

强制转换为unicode编码,在 Python 中编码是可以互相转换的,比如从utf-8转换为gbk,不同编码之间不能直接转换,需要通过unicode字符集中间过渡下,从上面基础知识可知unicode是一种字符集,不属于编码,而utf-8是具体实现unicode思想的一种编码。raw_input 是获取用户输入值的,获取到的用户输入值和当前运行环境编码有关,比如 cmd 下默认编码是 gbk,那么输入的汉字就是以gbk编码,而不管 demo.py 文件编码格式和编码声明。

hakesashou的博客 2893

使用Python提取中文的实战代码

 本文主要介绍了使用Python提取中文的实战代码,希望能对学习python的同学们有所帮助。 文章目录 1. 问题描述 2. 实战代码 2.1 提取中文的实战代码 2.2 删除中文的实战代码

weixin_43178406的博客 7万+

STM32F103+LAN9252实战:从站代码迁移中的5个硬件坑与解决方案

本文分享了将EtherCAT从站代码从STM32F767迁移至STM32F103平台时,搭配LAN9252遇到的五个典型硬件问题及解决方案。核心挑战包括时钟源不匹配、FSMC时序配置、中断映射错误、片选资源不足以及Flash烧录异常。文章通过实战经验,强调了硬件差异对代码迁移的关键影响,并提供了具体的调试思路与配置方法。

p5l2m9n4o6q的博客 697

2024最新Python下载安装环境配置教程(Windows系统+Mac系统)!附安装包

为了区分python解释器的版本,所以需要在指定文件夹下的python.exe复制一份副本并重新命名环境变量要看仔细,如果系统环境变量有,用户环境变量里面就删掉反之,系统环境变量里面有,用户环境变量就删掉环境变量,一般自己的电脑只有一个用户,如果有多个用户建议添加到系统环境变量。

m0_75067629的博客 1万+

蛋白质组学进阶指南 | (八)差异蛋白筛选与功能解析实战

本文是蛋白质组学差异蛋白筛选与功能解析的实战指南。详细讲解了如何利用R语言的limma包进行差异表达分析,结合FDR校正和差异倍数设定筛选关键蛋白,并通过火山图可视化结果。进一步介绍了使用clusterProfiler进行GO与KEGG功能富集分析,以及利用STRING数据库和Cytoscape构建蛋白互作网络以识别枢纽分子,最终串联分析形成可验证的生物学假说。

weixin_29208077的博客 739

python可以使用中文_在Python中使用中文

Python 默认支持的是ASCII字符,包含了英文字母大小写以及标点符号,用一枚字节表示。中文则使用两枚字节表示。当中文编码和ASCII混用的话,就会出现错误。目前中文编码有GB2312,BIG5,GBK。建议使用统一字符集Unicode,可以处理所有的语言文字。如果在.py文件中使用中文,请使用:#-*- coding:utf-8 –*-请注意在使用IDE的时候,project的编码格式一定要...

weixin_39664994的博客 1388

MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)

阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。

darcsdn 1269

DAIC-WOZ抑郁数据集实战:从申请到特征提取的全流程避坑指南

本文详细解析了DAIC-WOZ抑郁数据集从申请到特征提取的全流程,提供了实用的避坑指南和代码模板。涵盖数据获取技巧、多模态特征工程(面部动作单元、音频特征、文本处理)以及样本不平衡解决方案,帮助研究者高效处理这一经典抑郁分析数据集。

weixin_29196315的博客 171

python使用中文-Python中使用中文

这个问题曾在我初学Python的时候令我头疼不已,尤其是目前我们因为各种包的原因还只能使用2.x的版本。在3.x中字符编码已经统一用Unicode了。Python 默认支持的是ASCII字符,包含了英文字母大小写以及标点符号,用一枚字节表示。中文则使用两枚字节表示。没兴趣的同学可以绕过这段…有人可能要问了,我擦,为神马以前说一个汉字的精度越高字节越多么?为神马是两枚字节?这是两个不同的概念。存储里...

weixin_37988176的博客 1043

香橙派5B-RK3588-NPU内核升级至0.9.8:RKLLM多模态部署实战

本文详细介绍了香橙派5B-RK3588设备NPU内核升级至0.9.8版本的完整流程,重点讲解了升级的必要性、两种升级方案(预编译包安装与自行编译内核)以及RKLLM SDK的安装配置。通过实战演示多模态模型转换与推理,显著提升AI计算性能,为嵌入式AI部署提供实用指南。

salt9的博客 1025

python支持中文吗_Python中使用中文

这个问题曾在我初学Python的时候令我头疼不已,尤其是目前我们因为各种包的原因还只能使用2.x的版本。在3.x中字符编码已经统一用Unicode了。Python 默认支持的是ASCII字符,包含了英文字母大小写以及标点符号,用一枚字节表示。中文则使用两枚字节表示。没兴趣的同学可以绕过这段…有人可能要问了,我擦,为神马以前说一个汉字的精度越高字节越多么?为神马是两枚字节?这是两个不同的概念。存储里...

weixin_39643255的博客 2649

Python+ArcGIS实战:5步搞定土壤类型预测(附随机森林模型配置技巧)

本文详细介绍了如何结合Python与ArcGIS,利用随机森林模型进行土壤类型预测。通过5个核心步骤——数据预处理、样本创建、模型构建、空间预测与精度验证,构建了一套自动化、高精度的空间预测工作流,并提供了关键的模型配置与调参技巧,助力GIS开发者高效完成土壤制图任务。

weixin_29227585的博客 395

echarts实现3D地图——map3D

【代码】echarts实现3D地图——map3D。

xiaoququ的博客 7317

在python中使用中文_在Python中使用中文

这个问题曾在我初学Python的时候令我头疼不已,尤其是目前我们因为各种包的原因还只能使用2.x的版本。在3.x中字符编码已经统一用Unicode了。Python 默认支持的是ASCII字符,包含了英文字母大小写以及标点符号,用一枚字节表示。中文则使用两枚字节表示。没兴趣的同学可以绕过这段…有人可能要问了,我擦,为神马以前说一个汉字的精度越高字节越多么?为神马是两枚字节?这是两个不同的概念。存储里...

weixin_39884270的博客 588

leaflet 综合教程170+ 【目录 】(已包含162篇文章)

vue+leaflet系列教程旨在为开发者提供简单快捷的,。在每一个示例中,解释相应的API知识点,做到。注意本示例目录中的内容可能加载是vue+openlayers的示例, 本目录是要加载vue+leaflet的示例,只是内容少,逐渐更新中。

大剑师兰特的GIS世界 1万+

python使用中文

python 默认编码 Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。 解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了 python 如何写入中英文字符串到文件 本文实例讲述了 python 写入中英文字

一条道走到黑的GISer 670

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python能print中文吗_python中使用print输出中文的方法

python中使用print输出中文的方法看Python简明教程,学习使用print打印字符串,试了下打印中文,不行。编辑环境:IDLE上网搜了下解决办法,各种说法,试了两种:print u"学习"print (unicode("学习", encoding="utf-8"))保存时均还是会提示shell输出:ѧϰѧϰ说明第二种还是有编码但还是不对。最后,加上最前面一行就好了,虽然现在还不明白第...

weixin_39581896的博客 3069

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python能使用中文变量么

是的,在 Python 中可以使用中文变量名。但是请注意,它们必须遵循 Python 的命名规则,即只能包含字母、数字和下划线,不能以数字开头。 你可以使用中文字符作为变量名,例如: 中文变量 ="这是一个中文变量" print(中文变量) 输出结果: 这是一个中文变量 请注意,在使用中文变量名时,编码问题可能会出现,因此最好使用 UTF-8 编码。 ...

weixin_35751194的博客 5886

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

在python中使用中文_Python中使用中文的方法

python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识。当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了。先来看看python的版本:>>> import sys>>> sys.version'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v...

weixin_42360778的博客 7688

python中可以用中文作为变量-在Python 3.x中可以使用中文作为变量名。

【判断题】Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。【填空题】Python内置函数__用来返回序列中的最大元素【填空题】表达式 int(4**0.5) 的值为【填空题】语句x = 3==3, 5执行结束后,变量x的值为【填空题】表达式 3 and 5 的值为【填空题】表达式 len(range(1, 10)) 的值为【填空题】表达式 "ab’ in &...

weixin_37988176的博客 8152

在Python中使用中文

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33901843的博客 101

如何在python中输出中文_python中使用print输出中文的方法

看Python简明教程,学习使用print打印字符串,试了下打印中文,不行。编辑环境:IDLE上网搜了下解决办法,各种说法,试了两种:print u"学习"print (unicode("学习", encoding="utf-8"))保存时均还是会提示shell输出:ѧϰѧϰ说明第二种还是有编码但还是不对。最后,加上最前面一行就好了,虽然现在还不明白第一行为什么,不是说#是注释么。。。# en...

weixin_39900676的博客 581
上一篇: RFC 3261中文翻译
下一篇: YATE内部的消息机制
kernelspirit
博客等级 码龄25年 135粉丝 92原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值