您的位置:首页 > 编程语言 > Python开发

Python核心编程学习笔记(十二)——文件和输入输出

2014-05-15 23:50 232 查看
33、文件内建函数[open() 和 file() ]——提供了初始化输入/输出(I/O)操作的通用接口。open() 内建函数成功打开文件后会返回一个文件对象,否则引发一个错误。

open() 的基本语法是:file_object = open(file_name, access_mode='r', buffering=-1)

file_name 是包含要打开的文件名字的字符串,它可以是相对路径或者绝对路径。
可选变量access_mode 也是一个字符串,代表文件打开的模式。'r'—读取,'w'—写入,'a'—追加,'U'—代表通用换行符支持。
另一个可选参数buffering 用于指示访问文件所采用的缓冲方式,0表示不缓冲,1表示只缓冲一行数据,任何其他大于1的值代表使用给定值作为缓冲区大小,不提供该参数或者给定复制代表使用系统默认缓冲机制。

open() 和file() 函数具有相同的功能,可以任意替换。

34、输入

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

(2) readline(),读取打开文件的一行(读取下个行结束符之前的所有字节),然后整行,包括行结束符,作为字符串返回。它也有一个可选的size参数,默认为-1,代表读至行结束符,如果提供了该参数,那么在超过size个字节后会返回不完整的行。

(3) readlines(),读取所有(剩余的)行,然后把它们作为一个字符串列表返回。可选参数sizhint代表返回的最大字节大小。

35、输出

(1) write(),把含有文本数据或二进制数据块的字符串写入到文件中去。

(2) writelines(),针对列表操作,接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,所以如果需要的话,必须在调用writelines()前给每行结尾加上行结束符。

36、文件内移动

seek() 方法可以在文件中移动文件指针到不同的位置。offset字节代表相对于某个位置偏移量。位置的默认值为0,代表从文件开头算起(即绝对偏移量),1代表从当前位置算起,2代表从文件末尾算起。

text() 方法是对 seek() 的补充,它告诉你当前文件指针在文件中的位置——从文件其实算起,单位为字节。

37、文件迭代

一行一行访问文件很简单:

for eachLine in f:
:


在这个循环里,eachLine 代表文本文件的一行(包括末尾的行结束符),可以使用它做任何想做的事。

38、其它

close() 通过关闭文件来结束对它的访问,如果不显式地关闭文件的话可能丢失输出缓冲区中的数据。
fileno() 返回打开文件的描述符,是一个整数,可以用在如OS模块的一些底层操作上。
flush() 直接把内部缓冲区中的数据立刻写入文件。
isatty() 是一个布尔内建函数,当文件是一个类tty设备时返回True,否则返回False。
truncate() 将文件截取到当前文件指针位置或者到给定size,以字节为单位。

注意:print 语句默认在输出内容末尾后加一个换行符,而在语句后加一个逗号就可以避免这个行为。readline() 和readlines() 函数不对行里的空白符做任何处理,所以有必要加上逗号,如果省略逗号,那么显示出的文本每行后会有两个换行符。

39、input()

内建函数input() 是 eval() 和 raw_input() 的组合,等价于eval(raw_input())。类似于raw_input(),input()有一个可选的参数,该参数代表了给用户的字符串提示。如果不给定参数的话,该字符串默认为空串。

从功能上看,input 不同于 raw_input(),因为 raw_input()总是以字符串的形式,逐字地返回用户的输入。input()履行相同的的任务;而且,它还把输入作为 python 表达式进行求值。

这意味着input()返回的数据是对输入表达式求值的结果:一个 python 对象

raw_input():

>>> aString = raw_input('Enter a list: ')
Enter a list: [ 123, 'xyz', 45.67 ]
>>> aString
"[ 123, 'xyz', 45.67 ]"
>>> type(aString)
<type 'str'>


input():

>>> aList = input('Enter a list: ')
Enter a list: [123, 'xyz',45.67]
>>> aList
[123, 'xyz', 45.67]
>>> type(aList)
<type 'list'>


虽然用户输入字符串,但是 input()把输入作为 python 对象来求值并返回表达式的结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: