在实际应用中我们难免遇到某些显示位置最多只能显示比如4个中文加1个英文,一共9个字节的gbk编码文字,但是我们文本是utf-8的,如果转换GBK,担心里面有非GBK文字,那么我们如何截取来控制显示字符个数呢?
思路是这样子:首先文本用unicode表示,python中用u"汉字和English"表示;如果是字母或数字,计数宽度单位为1,否则计数2,这样来判断文本显示宽度是否超标,如果超标,利用截取函数,一个一个的往后截取,直到显示宽度越界了,回退一个,截取这么多个unicode字符返回即可。
代码如下:
#coding=utf-8
def is_chinese(uchar):
'''判断一个unicode是否是汉字'''
if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
return True
return False
def is_number(uchar):
"""判断一个unicode是否是数字"""
if uchar >= u'\u0030' and uchar<=u'\u0039':
return True
return False
def is_alphabet(uchar):
"""判断一个unicode是否是英文字母"""
if (uchar >= u'\u0041' and uchar<=u'\u005a') \
or (uchar >= u'\u0061' and uchar<=u'\u007a'):
return True
return False
def is_other(uchar):
"""判断是否非汉字,数字和英文字符"""
if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):
return True
return False
# gbk宽度可用于对齐,中文占两个字符位置
def gbkwordlen(u):
if is_number(u) or is_alphabet(u):
return 1
return 2
# 计算文本显示宽度
def gbkwordslen(uw):
i = 0
for u in uw:
i += gbkwordlen(u)
return i
def trunc_word(uw, len):
l = 0
i = 1
for u in uw:
l += gbkwordlen(u)
if l > len:
return uw[:i-1]
i += 1
return uw
a = u"更新a至1209期"
print trunc_word(a, 6)
print gbkwordslen(a)
分享到:
相关推荐
1、使用python读取指定长度的文本; 2、使用python读取某一范围内的文本。 Python代码 test.txt文本内包含的字符串为“AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD”,A,B,C,D均为8个 # -*- coding:utf-8 -*- text_file = ...
python读取文本文件实现猜单词实现: 1、计算机必须从文本文件 gone with the wind.txt 中随机选择一个单词命名为 secretWord,单词可能包含大写和小写字母,为降低猜测难度,需要将单词转换为全部小写字母。 2、...
SimHash的巧妙之处在于,即使文本有微小的变化,其对应的SimHash值也只是少数位发生变化,这使得通过比较SimHash值可以快速判断两个文本的相似度。 在Python中,实现SimHash通常包括以下几个步骤: 1. **预处理**...
同时,代码中还包含了变量打印输出的部分,帮助我们了解文本每行的长度和行数,对调试和优化代码提供了帮助。 最后,文中提到由于OCR技术原因可能造成文字识别错误或遗漏,因此在实际应用中应当进行仔细的检查和...
这个作业涉及到多个重要的Python技术和数据可视化方面,包括文本读取、词云图绘制、人物出场统计、社交网络关系建模以及章节字数分析。以下是这些知识点的详细说明: 1. **Python文本处理**:Python是一种非常适合...
Python的`open()`函数可以用来打开文件,然后通过`read()`或`readlines()`方法读取文本。对于大文件,可能需要使用`readline()`或分块读取以避免内存溢出。 3. **文本长度计算**:读取到文本内容后,计算文本长度...
在IT领域,Python语言因其简洁明了的语法和强大的功能而深受程序员喜爱,尤其是在命令行文本处理方面。本文将深入探讨“Python-命令行文本处理”这一主题,讲解如何利用Python进行高效、灵活的文本操作。 一、...
在Python编程语言中,了解如何判断字符长度是基础且至关重要的技能。这主要涉及到Python的字符串(str)数据类型以及内置的`len()`函数。字符串是由一个或多个字符组成的序列,可以用于存储文本信息。在Python中,字符...
在处理过程中,利用循环和条件判断,将非终结符的单词累加到`oneSentence`字符串中,当遇到终结符或超过一定长度的句子时,将其添加到`sentenceList`中,最后写入到输出文件(`outfile`)。 3. **优化处理**: ...
在Python编程语言中,处理文本文件是常见的任务之一。本文将详细介绍如何使用Python读取TXT文件,并去除其中的空格,然后计算每行的字符数(不包括空格)。这个方法对于分析文本数据、统计文本特征或者进行文本...
在这个"K-Means文本聚类python实现"的项目中,我们将深入探讨如何利用Python进行文本预处理、构建特征向量,并最终应用K-Means算法进行聚类。 首先,文本预处理是关键步骤,包括以下几部分: 1. **去除停用词**:...
在Python编程语言中,统计文本文件内的单词数量是一项常见的任务,尤其在数据分析、文本处理或者自然语言处理领域。本文将详细讲解如何通过Python实现这一功能,涉及到的关键知识点包括文件操作、字符串处理以及列表...
通常,文本预处理的完整流程包括:读取文本数据、分词、创建词汇表、编码文本为整数序列、设置最大序列长度并进行填充或截断,最后输入到模型进行训练。 7. **数据集准备**: 在hamelsmu-ktext-5bd49a5这个压缩包...
- **文件操作**:利用Python内置的文件处理功能读取文本文件。 #### 代码解析 1. **文件读取** ```python file = open(r'c:\Python34\file\english.txt') try: article_read = file.read() finally: file....
本教程将详细讲解如何使用C++语言读取SEGY文件,并进行图形和数据显示。 首先,理解SEGY格式至关重要。SEGY是由国际勘探地球物理家学会(SEG)制定的一种标准,它包含了地震记录的原始数据、元数据以及相关的文本...
file()`函数读取TXT文件数据,`build_vocab()`构建词汇表,`read_vocab()`将词汇表转化为词ID映射,`read_category()`处理分类标签,`to_words()`将ID转换回原始文字,而`process_file()`则将文本数据转化为固定长度...
# 读取文本文件 with open('Little Prince小王子.txt', 'r', encoding='utf-8') as file: content = file.read() # 定义正则表达式,匹配连续的英文字符 regex = re.compile(r'[a-zA-Z]+') # 使用findall()找到...
通过这些练习,学习者可以深入理解Python字符串的特性,增强字符串操作能力,并掌握处理文本数据的基本技巧。此外,这些题目也涉及到了一些基础的数据验证、隐私保护和简单加密等实际应用问题,有助于提升实际编程...
该资源实现了python对常用的文本文件的读取和使用 ##f=open('D:\\69.txt')#文件的打开 ##f.read()#文件的读写(读出所有内容) ##print(f.read()) ##f.close()#文件的关闭 ##f=open('D:\\69.txt')#文件的打开 ##...