文件(Python基础教程(第3版))

 

文件:

Open:用函数open,它位于自动导入的模块io中。函数open将文件名作为唯一必 不可少的参数,并返回一个文件对象。如果文件位于其他地方,可指定完整的路径。

函数open的参数mode的最常见取值:  'r' 读取模式(默认值),显式地指定读取模式的效果与根本不指定模式相同。   'w' 写入模式 ,写入模式让你能够写入文件,并在文件 不存在时创建它。   'x' 独占写入模式,独占写入模式更进一步,在文件已存在时引发FileExistsError异常     'a' 附加模式 ,既有内容将被删除(截断),并从文件开头处开始写入;如果要在既有文件末 尾继续写入,可使用附加模式。       'b' 二进制模式(与其他模式结合使用)      't' 文本模式(默认值,与其他模式结合使用)        '+' 读写模式(与其他模式结合使用表示既可读取也可写入。)  'r+'和'w+'之间有个重要差别:后者截断文件,而前者不会,可打开一个文本文件 进行读写。

 

Python使用通用换行模式,如果要使用这种模式,同时禁止自动转换,可将关键字 参数newline设置为空字符串,如open(name, newline='')。如果要指定只将'\r'或'\r\n'视为合 法的行尾字符,可将参数newline设置为相应的行尾字符。这样,读取时不会对行尾字符进行转 换,但写入时将把'\n'替换为指定的行尾字符。

 问题:如果文件包含非文本的二进制数据,如声音剪辑片段或图像,你肯定不希望执行上述自动转 换。为此,只需使用二进制模式(如'rb')来禁用与文本相关的功能。(为什么要禁用与文本相关的功能。)

 

读取和写入:使用f.read来读取数据,只需告诉流你要读取多少个字符(在二进制模式下是多少字节),从当前位置向后读取。调用open时,原本可以不指定模式,因为其默认值就是'r'。

使用 f.write来写入数据,调用f.write(string)时,你提供的字符串都将写入到文件中既有内容的后面。f.close()

 

seek(offset[, whence])将当前位置(执行读取或写入的位置)移到 offset 和 whence 指定的地方。

tell()返回当前位于文件的什么位置.

使用管道重定向输出:管道将一个命令的 标准输出链接到下一个命令的标准输入。

 

关闭文件:在有些 操作系统和设置中,还可避免无意义地锁定文件以防修改。另外,这样做还可避免用完系统可能 指定的文件打开配额。

1. 要确保文件得以关闭,可使用一条try/finally语句,并在finally子句中调用close。

2.with语句让你能够打开文件并将其赋给一个变量(这里是somefile)。在语句体中,你将数据 写入文件(还可能做其他事情)。到达该语句末尾时,将自动关闭文件,即便出现异常亦如此。

  如果要重置缓冲,让所做的修改反映到磁盘文件中, 但又不想关闭文件,可使用方法flush。

迭代文件内容:

  1. 每次一个字符(或字节)。Eg:使用read遍历字符
  2. 每次一行。Eg:在while循环中使用readline
  3. 读取所有内容。Eg:使用read迭代字符;使用readlines迭代。
  4. 使用 fileinput 实现延迟行迭代。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值