前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python入门(17)

Python入门(17)

作者头像
高一峰
发布2020-09-22 09:55:13
7060
发布2020-09-22 09:55:13
举报
文章被收录于专栏:高渡号外
Python入门(17/18)

第十七节 文件

大家好!今天我们要讲一个重要的Python操作对象:文件。

关于程序中的交互的行为我们其实一直都在发生,比如,当你要获取用户的输入内容,并向用户打印出一些返回的结果,就会用到了 input() 与 print() 函数。

但是,我们有时会遇到一些需要持久化的信息,除了使用数据库以外,还有没有一些简单、灵活的方法呢?答案是有的。那就是今天我们要讲的python的文件。

1、回顾一下:input()与print()

说明:本例,我们用到了字符串的切片操作来实现文本翻转功能。如前所述,我们可以通过使用str[a:b:c] 来从位置 a 开始到位置 b 结束来对序列进行切片 。c是切片的步长(Step)。默认的步长为 1 ,它会返回一份连续的文本。如果给定一个负数步长,如 -1 ,将返回翻转过的文本。

2、文件操作函数:open()、read() 、readline()、write()、close()

(1)可以通过open()函数,创建(也就是“打开”)一个属于 file 文件类的对象。

(2)可以通过 read() 、readline()、write() 等方法来读取或写入文件。

(3)当你完成了文件使用,你可以调用 close()方法来关闭该文件的操作对象。

PS:读取或写入文件的能力取决于你指定以何种方式打开文件。

  • name:文件名。
  • mode:打开文件的模式:只读,写入,追加等(更多...)。默认为只读(r)。
  • buff:0-不寄存,1-寄存,>1的整数,寄存区大小。负值,缓冲大小为系统默认。

文件打开模式有:阅读模式( 'r' )、写入模式( 'w' )、追加模式( 'a' )、文本读取模式( 't' )、二进制读取模式( 'b' )。通过 help(open) 可以查看更多其他模式和细节。默认情况下, open() 会将文件视作文本读取方式打开。

3、Pickle

文件操作的确很方便,那么,除了文本内容以外,其他数据类型的对象,我们有没有办法也存储到一个文件中去呢?

是的,有的!似乎只要你有需求,Python就为你准备好了解决方案。

通过导入 Pickle 模块,你可以将任何纯 Python 对象存储到一个文件中,并在稍后将其取回,这也叫持久地存储对象。

封装:

首先通过 open 以写入(w)二进制(b)模式打开文件,然后调用 pickle 模块的 dump 函数。这一过程被称作封装(Pickling)。

拆封:

然后,我们通过 pickle 模块的 load 函数接收返回的对象。这个过程被称作拆封(Unpickling)。

4、Unicode

大家有没有注意到,我们编写的代码,一直都只用英文或数字。那遇到非英文,比如:中文,怎么办呢?

通常我们会引入unicode编码格式来解决中文的识别和显示问题,如下面的代码。其中,class就表示类,即类型。class ‘str’,显示为字符串的类型。

使用 unicode 编码的字符串,都以字母 u 开头,例如 u"hello world",但在python3以后,其实并不需要这么麻烦,默认都是unicode编码 。

5、utf-8

当我们读取未知文件或写入非英文字符文件时,我们需要在open()中将 Unicode 字符指定为“UTF-8”编码格式,建议将 # encoding = utf-8 这一注释,习惯性的放置在程序的顶端。

小结

本节课程,我们讨论了有关输入和输出的多种类型,包括临时的,和可持久化的,比如文件处理,以及有关 pickle 模块,还有关于 Unicode知识等等。

如果大家有兴趣,建议各位使用python独立开发一款自己的“通讯录”,怎么样?

任何问题可以在后面的留言中提出来讨论。当你独立完成这个项目以后,你应该自信自己已经成为了一个真正的python程序员了。

要想成为一名优秀的程序员,最重要的途径就是:多写代码!接下来,我们在下一集的扩展知识中,我们还将分享python更多有趣的功能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档