python解析中文
1. python2.7 怎么解析命令行输入的中文参数
本文实例讲述了python读取命令行参数的方法。分享给大家供大家参考。具体分析如下:
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
test.py:
import sys
print "脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
print "参数", i, sys.argv[i]
>>>python test.py hello world
脚本名:test.py
参数 1 hello
参数 2 world
python中使用命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.
>>> python convert.py -i inputfile -o outputfile
2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息
>>> python convert.py -h
getopt函数原形:
getopt.getopt(args, options[, long_options])
convert.py:
import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
input_file=""
output_file=""
for op, value in opts:
if op == "-i":
input_file = value
elif op == "-o":
output_file = value
elif op == "-h":
usage()
sys.exit()
代码解释:
a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
b) "hi:o:": 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。所以"hi:o:"就表示"h"是一个开关选项;"i:"和"o:"则表示后面应该带一个参数。
c) 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。
getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:
--version
--file=error.txt
让一个脚本同时支持短选项和长选项
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
希望本文所述对大家的Python程序设计有所帮助。
2. 用Python的BeautifulSoup解析网页时,里面的中文显示乱码,要怎样才能正常显示中文
转码啊,先把你的爬过来的内容转成utf8或者gbk(这样要结合你网站使用的编码),这种解决方案网上还是很多的,就不一一列举了。如果你都试过了,可以把网站贴出来看看。
3. Python分析中文文字有哪些方法,那些库
做短文本用线性svm,效果有目共睹,分词用jieba,词语向量化用Word2vec(gensim包)!
4. python解析图片中的中文乱码
是不是中文没有正确解码啊?如果系统和编辑器是utf8的,那string也要转成utf8的
5. python 读取的中文怎么使用
file = open('filename.txt','r')
text = file.read() #读取所有文字
text = file.readline() #读取一行文字
text = file.readlinse() #把每一行变成list的一个元素
如果需要里面中文的话,用正则匹配
6. python怎样读取文本文件里的中文
#在Windows 环境下
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import re
fin = open('in.txt', 'r') #以读的方式打开输入文件
for eachLine in fin: #按行读入文件内容
line = eachLine.strip().decode('gbk', 'utf-8') #处理前进行相关的处理,包括转换成Unicode等
print line #打印原始字符
p2 = re.compile(ur'[^\u4e00-\u9fa5]') #中文的编码范围是:\u4e00到\u9fa5
zh = "".join(p2.split(line)).strip()
#zh = ",".join(zh.split())
print zh ##打印中文字符
7. 如何用 Python 中的 NLTK 对中文进行分析和处理
最近正在用nltk 对中文网络商品评论进行褒贬情感分类,计算评论的信息熵(entropy)、互信息(point mutual information)和困惑值(perplexity)等(不过这些概念我其实也还理解不深...只是nltk 提供了相应方法)。
我感觉用nltk 处理中文是完全可用的。其重点在于中文分词和文本表达的形式。
中文和英文主要的不同之处是中文需要分词。因为nltk 的处理粒度一般是词,所以必须要先对文本进行分词然后再用nltk 来处理(不需要用nltk 来做分词,直接用分词包就可以了。严重推荐结巴分词,非常好用)。
中文分词之后,文本就是一个由每个词组成的长数组:[word1, word2, word3…… wordn]。之后就可以使用nltk 里面的各种方法来处理这个文本了。比如用FreqDist 统计文本词频,用bigrams 把文本变成双词组的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
再之后就可以用这些来计算文本词语的信息熵、互信息等。
再之后可以用这些来选择机器学习的特征,构建分类器,对文本进行分类(商品评论是由多个独立评论组成的多维数组,网上有很多情感分类的实现例子用的就是nltk 中的商品评论语料库,不过是英文的。但整个思想是可以一致的)。
另外还有一个困扰很多人的Python 中文编码问题。多次失败后我总结出一些经验。
Python 解决中文编码问题基本可以用以下逻辑:
utf8(输入) ——> unicode(处理) ——> (输出)utf8
Python 里面处理的字符都是都是unicode 编码,因此解决编码问题的方法是把输入的文本(无论是什么编码)解码为(decode)unicode编码,然后输出时再编码(encode)成所需编码。
由于处理的一般为txt 文档,所以最简单的方法,是把txt 文档另存为utf-8 编码,然后使用Python 处理的时候解码为unicode(sometexts.decode('utf8')),输出结果回txt 的时候再编码成utf8(直接用str() 函数就可以了)。
8. python如何读取中文文件内容
open(锦囊一,'r',encoding="utf-8")
9. Python中用BeautifulSoup解析中文网页里的中文都是乱码,怎么回事
print一个对象的逻辑:内部是调用对象的__str__得到对应的字符串的,此处对应的是soup的__str__ 而针对于soup本身,其实已经是Unicode编码,所以可以通过指定__str__输出时的编码为GBK,以使得此处正确显示非乱码的中文
而对于cmd:(中文的系统中)编码为GBK,所以只要重新编码为gb18030就可以正常输出了
就是下面这行代码
print(soup.title).encode('gb18030')
10. python 中文解码
python中有一个chardet库,这个可以查看你的编码是什么
>>> import chardet
>>> print chardet.detect(r'\xe8\xae\xb8\xe9\x93\xad\xe6\xb1\xb6')
{'confidence': 1.0, 'encoding': 'ascii'}
说明你的这个编码是python默认的ascii编码