Python IO与文件编码¶
概要: Python使用input()
函数和output()
函数来实现程序和用户的交互。对于输入,我们还可以使用str
类的各种方法,如我们可以使用rjust
方法来获得一个右对齐到指定宽度的字符串,通过查看help(str)
可以获取更多的细节。除此之外,本文还会讨论文件的创建、读取写入等操作。
创建时间: 2022.10.02 11:43:09
更新时间: 2022.10.02 11:46:19
用户输入内容¶
直接看如下示例
Python | |
---|---|
运行结果如下
Text Only | |
---|---|
提示
-
通过切片功能翻转文本,具体来说,可以通过使用
seq[a:b]
来从位置a
开始到位置b
结束来对序列进行切片,同样可以使用第三个参数来确定切片的步长(Step),默认步长是1
,它会返回一份连续的文本,如果给定过一个负数的步长,如-1
,那么将会返回翻转过的文本 -
input()
函数可以接受一个字符串作为参数,并将其展示给用户。当用户输入了某些内容并敲下回车键后,input()
函数将返回用户输入的文本
文件¶
我们可以通过创建一个属于file
类的对象并使用它的read
readline
write
方法来打开或者使用文件,并对它们进行读取或者写入,当完成了文件后,可以调用close
方法来告诉Python我们已经完成了对该文件的使用
示例程序块如下
Python | |
---|---|
poem.txt
,结果如下
提示
-
我们使用内置的
open
函数来指定文件名以及打开模式 -
打开模式可以是文本模式阅读模式(
r
),写入模式(w
),追加模式(a
)。我们可以选择通过文本模式(t
)或者二进制模式(b
)进行读取、写入或追加文本 -
help(open)
提供更多细节参考 -
我们在循环中使用
readline
方法来读取文件的每一行,当一个空字符串返回时,表示我们已经到达文件末尾,并通过break
来推出循环
Pickle存储文件¶
pickle
标准模块可以将任何纯Python对象存储到一个文件中,并在稍后将其取回,这称为持久地(Persistently)存储对象
示例程序块如下
Python | |
---|---|
Text Only | |
---|---|
提示
-
若要将一个对象存储到一个文件中,首先需要通过
open
写入(write)二进制(binary)模式打开文件,然后调用pickle
模块的dump
函数来进行封装(Pickling) -
我们可以通过
pickle
模块的load
函数接收返回的对象,此过程称为拆封(Unpicking)
Unicode编码¶
当我们阅读或写入某一文件或当我们希望与互联网上的其它计算机通信时,我们需要将我们的Unicode字符串转换至一个能够被发送和接收的格式,这个格式叫作“UTF-8”
示例程序块如下
Python | |
---|---|
提示
-
当我们使用Unicode编写一款程序时,必须确保Python程序已经被告知我们使用的是UTF-8,因此我们必须将
# encoding=utf-8
这一注释放置在我们程序的顶端 -
我们使用
io.open
并提供了“编码(Encoding)”和“解码(Decoding)”参数来告诉Python正在使用Unicode