设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 499|回复: 1
收起左侧

Python基础|文件与异常(一)

[复制链接]
发表于 2017-12-19 20:27:30 | 显示全部楼层 |阅读模式
接上回说:
概要
安装环境
变量
布尔、数字、字符串
列表


·文件
数据持久化最简单的类型是普通文件,有时也叫平面文件(flat file)。它仅仅是在一个文件名下的字节流,把数据从一个文件读入内存,然后从内存写入文件。Python很容易实现这些文件操作,它模仿熟悉和流行的 unix 系统的操作。


读写一个文件之前需要打开它:
1 data = open(filename, mode)
下面是对该 open() 调用的简单解释:
- data 是 open() 返回的文件对象;
- filename 是该文件的字符串名;
- mode 是指明文件类型和操作的字符串。


mode 的第一个字母表明对其的操作:
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+ 可读可写,不会创建不存在的文件。如果直接写文件,则从顶部开始写,覆盖之前此位置的内容,如果先读后写,则会在文件最后追加内容。
w 表示写模式。若果文件不存在则新创建,如果该文件已存在则将其覆盖。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
x 表示在文件不存在的情况下新创建并写文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。


mode 的第二个字母是文件类型:
t(或者省略) 代表文本类型。
b 代表二进制文件。


打开文件之后就可以调用函数来读写数据,最后需要关闭文件。


使用 write() 写文本文件

                               
登录/注册后可看大图

将整首诗写到libai.txt中:

                               
登录/注册后可看大图

函数 write() 返回写入文件的字节数。和 print() 一样, 他没有增加空格或者换行符。同样,你也可以在一个文本文件中使用 print()

                               
登录/注册后可看大图

这就产生了一个问题:到底是用是 write() 还是 print()? print() 默认会在每个参数后面添加空格,在每行结束处添加换行。在之前的例子中, libai.txt 中默认添加了一个换行。为了使 print() 与 write() 有同样的输出,传入下面两个参数:
sep 分隔符:默认是一个空格 ' '
end 结束字符:默认是一个换行符 '\n'
除非自定义参数,否则 print() 会使用默认参数。在这里,我们通过空字符串替换 print() 添加的所有多余输出:

                               
登录/注册后可看大图

如果字符串非常大,可以将数据分块,直到所有字符被写入:

                               
登录/注册后可看大图

第一次写 10 个字符,4次写完,32个字符。
如果 libai.txt 文件已经存在,使用模式 x 可以避免重写文件:

                               
登录/注册后可看大图

这个部分内容比较多

下期我们继续

www.yeslab.net

                               
登录/注册后可看大图



发表于 2017-12-19 21:28:52 | 显示全部楼层
感谢楼主分享!
沙发 2017-12-19 21:28:52 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-3-28 17:34 , Processed in 0.082428 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表