人身苦短,我用Python 学习笔记——第七天

本章的主要内容是 Python 的条件和循环语句以及与它们相关的部分. 我们会深入探讨 if ,
while , for 以及与他们相搭配的 else , elif , break , continue 和 pass 语句.
























文件内建函数[open()和file()]
file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径. 可选变量
access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 'r', 'w', 或是 'a'
模式来打开, 分别代表读取, 写入和追加. 还有个 'U' 模式, 代表通用换行符支持(见下).


使用 'r' 或 'U' 模式打开的文件必须是已经存在的. 使用 'w' 模式打开的文件若存在则首
先清空, 然后(重新)创建. 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将
追加到文件的末尾. 即使你 seek 到了其它的地方. 如果文件不存在, 将被自动创建, 类似以 'w'
模式打开文件. 如果你是一个 C 程序员, 就会发现这些也是 C 库函数 fopen() 中使用的模式.
其它 fopen() 支持的模式也可以工作在 Python 的 open() 下. 包括 '+' 代表可读可写, 'b'
代表二进制模式访问
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开 (必要时清空)
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
a. Python 2.3 中新增
fp = open('/etc/motd') # 以读方式打开 默认读写


open() 成功执行并返回一个文件对象之后, 所有对该文件的后续操作都将通过这个"句柄"进
行. 文件方法可以分为四类: 输入, 输出, 文件内移动, 以及杂项操作




read() 方法用来直接读取字节到字符串中, 最多读取给定数目个字节. 如果没有给定 size
参数(默认值为 -1)或者 size 值为负, 文件将被读取直至末尾.


read() 方法用来直接读取字节到字符串中, 最多读取给定数目个字节. 如果没有给定 size
参数(默认值为 -1)或者 size 值为负, 文件将被读取直至末尾. 未来的某个版本可能会删除此方
法.
readline() 方法读取打开文件的一行(读取下个行结束符之前的所有字节). 然后整行,包括行
结束符,作为字符串返回. 和 read() 相同, 它也有一个可选的 size 参数, 默认为 -1, 代表读至
行结束符. 如果提供了该参数, 那么在超过size 个字节后会返回不完整的行.
readlines() 方法并不像其它两个输入方法一样返回一个字符串. 它会读取所有(剩余的)行然
后把它们作为一个字符串列表返回.


readline和readlines,read都是用来读取文件内容,readline()每次读取一行,当前位置移到下一行;readlines()读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素;read(size)从文件当前位置起读取size个字节(如果文件结束,就读取到文件结束为止),如果size是负值或省略,读取到文件结束为止,返回结果是一个字符串
readline()每次只读取一行,通常比 .readlines()慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。


当使用输入方法如 read() 或者 readlines() 从文件中读取行时, Python 并不会删除行结束
符. 这个操作被留给了程序员. 例如这样的代码在 Python 程序中很常见:
f = open('myFile', 'r')
data = [line.strip() for line in f.readlines()]
f.close()
类似地, 输出方法 write() 或 writelines() 也不会自动加入行结束符. 你应该在向文件写
入数据前自己完成:




从文件中读取行的最好办法是使用 file.readlines() 来读取所有数据,
这样程序员可以尽快释放文件资源. 如果不需要这样做, 那么程序员可以调用 file.readline()
一次读取一行. 曾有一段很短的时间, file.xreadlines() 是读取文件最高效的方法.




还要提醒大家的是: print 语句默认在输出内容末尾后加一个换行符, 而在语句后加一个逗号
就可以避免这个行为. readline() 和 readlines() 函数不对行里的空白字符做任何处理(参见本章
练习), 所以你有必要加上逗号. 如果你省略逗号, 那么显示出的文本每行后会有两个换行符, 其
中一个是输入是附带的, 另个是 print 语句自动添加的
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值