竹笋

首页 » 问答 » 问答 » 最详细的python读取文本open函数
TUhjnbcbe - 2024/6/14 19:16:00

前言

这篇文章是面对新手的python教程,很多地方我都讲的很细。认真看,仔细看,相信你会有所收获。

首先使用PyCharm创建一个pythonProject项目。

具体教程参考我主页的从头到脚教你使用python进行开发这篇文章,介绍的很详细。

假设你的pythonProject已经创建完成,如图所示。

下面让我们在pythonProject的项目上右键点击New-File

在弹出的NewFile的编辑框中输入将进酒.txt

回车

然后,我们打开左侧的main.py

把原来的print代码给它删掉,我们换别的代码。

输入

text=open(将进酒.txt,encoding=utf-8)lines=text.readlines();forlineinlines:print(line)

如图所示:

然后,我们点击左侧边栏的三角标志按钮

运行,并看到上面打出来文本将进酒所有的诗句。

接下来我们一步一步的介绍每一句的意思。

首先是open(‘将进酒.txt’,encoding=’utf-8’)

这个open函数是一个操作文本的函数,它不光可以读取文本,还可以写入文本。

第一个参数也就是‘将进酒.txt’,号之前的,这个参数要求你放入的是文本文件名。

就是我们刚刚创建的那个文件名。

第二个参数,是我们读取文件的过程中,使用哪种编码。

这里我们选择的编码是UTF-8,你只要知道这个编码是现在最通用的文字编码就行了。

要对这个编码有一个清晰的认识我们可以这样做

你在那个将进酒.txt去点右键

选择openin-Explore

打开那个将进酒.txt所在的目录之后,你双击用系统自带的记事本打开。

看到那个文件(F)没有?

就点那个,然后点另存为

还在这个文件夹中,

你点那个编码(E)旁边的Combox(显示UTF-8的那个ui组件)

选择第一个ANSI

选择下去

再点保存

你点是。

我们再回到那个PyCharmIDE中,你试着点下那个三角Runmain看看结果

它是不是出错了?

怎么提示的?

utf-8编解码器无法解码位置e中的字节exbd:无效的起始字节

这就是编码问题。

那我们怎么解决呢?

还给它改会来么?

再操作一遍?

不用,那样太麻烦了。

我们可以这样做。

看见我鼠标圈起来的那几个字了没?

我们把它改下,改为gbk,再来运行下

看看效果

哎,又好了。

为什么好?因为我们使用的读取文件的编码方式,与文件存储文字所使用的编码方式一致就能够正确读取。

那后面的那个text是怎么回事呢?

前面的open包括open括号内的两个参数都是open函数的一部分。

而后面的text则属于open的返回值

我们用text这个变量(在java中,我们习惯称为把这个称为文件对象)给它接过来了。

就相当于,这个text中存贮了将进酒.txt文件中的所有内容。

我们可以这样来看一看这个text,

来我们加一段代码

看到没有。

这一次我们将后面的for语句块整个的删除了

只加上一个text.read()就能读取这个文件中的所有内容。

而for语句的作用不过是起到一个遍历的作用

你看到text.readLines()这个函数没?

我们从它的名字猜起来

Read读取line行s学过英语的都知道这个s此时代表的是复数的意思。

结合起来是什么?也就是读取所有行

读取所有行之后,返回一个list也就是一个列表

知道什么是列表不?Excel熟悉不?

我们来看看这个玩意

问你,第一行是什么?将进酒,第二行,第三行呢?

同样,在python中

Readlines返回的也是这么一个东西

我们把代码改回来

然后是for语句,

For语句的格式就是这样

For承接list的每一行的变量in总的list:(加个冒号)

下面就是要对这个承接list的每一行的变量进行的操作

我们做了什么操作呢?

Print(line)

将每一行输出的操作。

这就完了,是的,这个for语句就这么简单

我们从英文语法的角度分析下in

你看看说的多详细

在什么什么里面,在什么什么内,而在这里,它的意思就是在lines这个这个列表里面

的linefor一下

再来看for为了,为得到,为获取

一直循环下去,直到读取完毕。

接下来我们开始对文本行进行下操作。

比如给它加上序号。

可以看到所有的输出行都加上了序号。

为什么会这样?

首先我们初始化一个变量n

虽然Python中没有类型定义,这个确实比较烦人,但是我们给它赋值了一个数字0

大家都知道吧,我们就知道了,它确是个int类型的或者说数字变量。

下面在for语句中我们又加了一行

叫做n=n+1

小学时候我们都学过公式吧

A+1=B

然后A=1问B等于多少

哎,其实咱这个语句是同样的道理

只不过=号的结果放在了左边。

因为是左边先计算的,计算完毕后,我们还可以继续使用变量n来接收n+1的值

这样就实现了递进计数。

N=n+1

而下一条语句

Str(n)首先要说明的是这个str是个函数,n这时是个参数

Str这个函数的意思是将n这个int或者说数字类型的变量转换为字符串类型的变量

然后就可以实现字符串的拼接了。

由此实现了文本的字符串读取与序号添加等操作。

谢谢大家的阅读!有关python的其他内容或者文章,可以在我的主页查找。最后希望大家动动你们的小手,点赞收藏加

1
查看完整版本: 最详细的python读取文本open函数