第一句子大全,网罗天下好句子,好文章尽在本站!

慢步Python:输出word文档内每段前10个字 在编写中学习知识点

时间:2020-05-24

主要内容如下:数据类型错误、遍历结构、判断语句,列表及字符串的切片首先创造一个word文档慢步用自己昨天发的文章内容吧慢步python,教你怎么通过pytho

友情提示:本文共有 2810 个字,阅读大概需要 6 分钟。

今天想实现一些相对简单的功能,输出word文档内每段前10个字

目的是通过一个实例来学习python。

主要内容如下:

数据类型错误、遍历结构、判断语句,列表及字符串的切片

首先创造一个word文档

慢步用自己昨天发的文章内容吧慢步python,教你怎么通过python编程来修改word文档内标题,点击链接打开文章。

选择文章内容,复制,粘贴到一个新建的word文档中,保存为123.docx,把文件保存到我们当前的项目文件夹里面。(也可以新建一个项目,但不必要)

慢步把新建的123.docx放到昨天建的项目changeheadline文件夹里面。

然后新建一个py,命名为get10words,这样在项目内可以看到一个get10words.py

(对于新建项目及新建py文件有疑问的,可以回看慢步的pycharm的基本操作,创建项目,新建py文件,编写代码及保存)

如上图,在get10words.py里面写入代码:

"""输出word文档每段前10个字符作者:地铁慢步日期:2020-4-8"""from docx import Documentd = Document("123.docx")paragraph_num = len(d.paragraphs)print("123.docx共有段落" + paragraph_num + "段")for p in d.paragraphs:if len(p.text) >= 9:print(p.text[:9])else:print(p.text + "(本段落不足10个字符)")运行代码看看会得到什么样的结果?运行代码的方式如下:

鼠标移动到get10words.py窗口标题,鼠标右键,选择列表中的绿色三角形运行按钮。

果然,写代码都是会出错的。

第2行红色字体,第一个提示是line 8,即代码的第8行 d = Document("123.docx") 在这个程序中出现异常。这个代码主要用于打开文档,慢步考虑异常是最后没有关闭文档。

然后慢步在代码最后加上

d.save("123.docx")嗯,不幸的事情发生了,好像问题不是我想的那样。

发现用慢步弄下来的123.docx,会卡死在打开文档的代码那里,一直提示出错。

只能考虑是慢步把网页格式复制下来了,而python-docx库只能处理word文档的特定格式。即慢步这时的123.docx超出了python-docx库的可处理范围。

那么,只能重新建造一个合格的123.docx

这次只选取部分内容,然后保存为123.docx,都简单些吧。

代码还是那段代码,变的只是123.docx的内容(避免复制到网页格式)

再次运行一下看看。

这次还是出现异常,但显然已经成功打开123.docx文档了。

最后一行红色提示才是问题所在:

TypeError: Can"t convert "int" object to str implicitly

错误类型:无法将“int”(数值类型)对象转换为str(字符串类型)

这是因为

paragraph_num = len(d.paragraphs)

d变量代表123.docx文档,文档的所有段落即d.paragraphs。同时这里的所有段落又可以看成有序的列表,列表的第一项为文档第一段,第二项为第二段……

len()函数获得是长度,属于数值类型数据。 len(文档的段落列表)即得到段落的数目长度。

paragraph_num 在这句代码中会得到123.docx文档的段落数。

这里我们可以用str()函数,把数值转换成字符串。代码更改后如下:

print("123.docx共有段落" + str(paragraph_num) + "段")那现在再来尝试运行吧。

终于,我们得到了结果

这次没有报错,并把我们想要结果显示出来了。

123.docx共有段落5段

大家好,这里是地铁

今天想教大家怎么实

慢步在工作中也有用

现在先实现第一个简

(本段落不足10个字符)

对比慢步的123.docx真实文档内容

实际上,第5段是空格键。

代码的解释

最后来解释一下代码吧。最终代码如下:

"""输出word文档每段前10个字符作者:地铁慢步日期:2020-4-8"""from docx import Documentd = Document("123.docx")paragraph_num = len(d.paragraphs)print("123.docx共有段落" + str(paragraph_num) + "段")for p in d.paragraphs:if len(p.text) >= 9:print(p.text[:9])else:print(p.text + "(本段落不足10个字符)")d.save("123.docx")第一部分三引号

“““

这里是注释,计算机默认无视这部分内容 。注释是给编程人员看的

”””

从上到下

引用docx (指python-docx库)里面的Document功能代码块

打开123.docx,并用d变量表示

把文档段落数目赋值给变量paragraph_num。(赋值号=后面的数据类型决定新变量的数据类型,这里决定paragraph_num是数值变量)

输出段落数

for p in d.paragraphs:

遍历代码块

这个结构称遍历结构,指:对于列表d.paragraphs里面的每一个元素p,都执行遍历代码块。第一次p为列表d.paragraphs里面的第一个元素,第二次p为列表d.paragraphs里面的第二个元素……

if len(p.text) >= 9:print(p.text[:9])else:print(p.text + "(本段落不足10个字符)")这里是判断语句/判断结构

如果 段落p的文本长度大于或等于9,即条件成立,执行代码print(p.text[:9]),否则执行else:后面的代码print(p.text + "(本段落不足10个字符)")。

p.text就是段落的文本内容,指一个段落的所有文字,也可以当成一个文字列表,第一个字就是文字列表的第一个元素。这里有个“切片”概念。p.text[:9]和p.text[0:9]相同,0和9是列表的索引,0索引指向第一个元素,9索引指向第10个元素。但是[0:9]指向的内容,由索引0开始,但不会到达索引9,即第1到第9个元素,但不包括第10个元素。

嗯,慢步这时候又发现了自己写的代码的bug。因为这里只把段落内容切出了9个字符串。大家可以把9改成10。

最后一行代码,就是保存为123.docx。因为我们并没有对文档做出改变,所以保存也没有什么提示。

记得在运行这个程序时,把打开的123.docx关闭,否则会提示异常。

暂时写到这里吧,内容也算挺多了。写完就又过0点了。

慢步python,陪你在python学习上慢慢进步好了。

本文如果对你有帮助,请点赞收藏《慢步Python:输出word文档内每段前10个字 在编写中学习知识点》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
中国大学慕课Python语言程序设计答案大全2021

中国大学慕课Python语言程序设计答案大全2021

...l+()键打开“开始”菜单。在word中,按住()键,单击文档中的一个地方,鼠标单击处的整个句子就被选取(句子以句号结束)。地址重定位在Excel2000中,要同时选择多个相邻的工作表,应把()按键与单击鼠标相配合在Word...

2023-07-17 #经典句子

Python人工智能语句类型(新手必看)

Python人工智能语句类型(新手必看)

...可以(可选的)是字符串文字;这个字符串文字是函数的文档字符串或 docstring。(有关文档字符串的更多信息,请参阅 文档字符串 部分)有些工具使用文档字符串自动生成在线或印刷文档,或者让用户以交互式的形式浏览代码...

2023-09-10 #经典句子

小白都能学会的Python技术 解决csv和txt的文件处理 提高效率!

小白都能学会的Python技术 解决csv和txt的文件处理 提高效率!

...) as employees_file: # 以写的方式打开文件步骤5:到了这一块知识点很重点,以写方式打开文件是要将文件对象转换为DictWriter对象;跟上面以读取打开文件的方式是要将文件对象转换为DictReader对象,这一点需要记住。参考:在实例...

2024-01-19 #经典句子

NLP实战:利用Python理解 分析和生成文本|赠书

NLP实战:利用Python理解 分析和生成文本|赠书

...前世界各地人们所用的自然语言的10倍。谷歌的自然语言文档索引远超过1亿吉字节,而且这只是索引而已,当前在线的实际自然语言内容大小肯定超过1000亿吉字节,同时这些文档并没有完全覆盖整个互联网。“自然语言”与“...

2023-06-11 #经典句子

Python语言基础知识点

Python语言基础知识点

一、Python 语言的简述Python语言是一种解释型、面向对象的编程语言,是一种开源语言。Python属于动态类定义语言,也是一种强调类型语言。二、Python 语言的特点1、简单、高级2、面向对象3、可扩展性、免费和开源的4、可移植型...

2023-01-08 #经典句子

用Python语言模型和LSTM做一个Drake饶舌歌词生成器

用Python语言模型和LSTM做一个Drake饶舌歌词生成器

...(Word-level)模型。这两者的主要区别在于模型的输入和输出,接下来就具体讲解一下两个模型的工作原理。字符级模型在字符级模型中,输入是一连串的字符seed(种子),模型负责预测下一个字符,然后用seed + new_char组合来生...

2023-12-24 #经典句子

鬼才语文老师 将一年级知识点汇总成32页的文档 班级次次得优秀

鬼才语文老师 将一年级知识点汇总成32页的文档 班级次次得优秀

一位鬼才语文老师,经过精心整理,将一年级期末总复习知识点汇总成一份32页的文档,班级次次得第一。本学期一年级语文的课文学习基本结束,将进入最后的期末总复习了。一年级语文期末总复习要从哪些方面入手呢?做有...

2008-05-26 #经典句子

VBA代码解决方案第146讲:如何自动实现Word文档的信息统计

VBA代码解决方案第146讲:如何自动实现Word文档的信息统计

...可以回过头来看看我之前的文章。如果我们理解了VBA这个知识点完全可以用VBA来解决,而且,解决的更好。今日讲的实例是利用循环统计出所选文本中的句子数量和结尾的标点符号。Sub mynzsen()Dim s As Range, SenCount As Integer, MyString A...

2023-12-10 #经典句子