2009-03-26

python的输入输出



python的使用print进行输出到标准输出,用raw_input([prompt])从标准输入进行输入.其中prompt是一个可选的用于提示用户进行输入的字符串
>>> print "for note"
for note
>>> integer = raw_input("please input an integer: ")
please input an integer: 890
>>> print integer
890
>>>

对文件的操作则使用file(path, mode)返回的对象进行读写,和其他语言基本一样,它用read来读,用write来写,用close来关闭打开的文件.
f = file("test", "rw")
>>> f.read(3)
'abc'
>>> f.write("for note,ohohoho")
Traceback (most recent call last):
File "", line 1, in
IOError: [Errno 9] Bad file descriptor
>>> f = file("test", "r+")
>>> f.write("for note, ohohoh")
>>> f.read()
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00ABCDEFGHIJ'
>>> f.close()
>>> f = file("test", "r")
>>> f.read()
'for note, ohohoh\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00ABCDEFGHIJ'
>>>

上例中打开的test文件有"空洞",所以输入来用很多的0. file的第二个参数似乎只有第一个有作用. 要打开文件用于读和写,要用"+". 如果不传递参数给read,它会读取整个文件的内容,如果传递一个整数给它,它就会读这个参数指定的字节数,除非遇到文件结束符. 输出是有缓存的,从上面可以看到,在调用close之前,write写的东西是读不出来的.

另外,还有readline()用于读取一行;readlines()用于读取所有行,并保存到一个列表中,列表的每个元素代表文件的一行

文件读写当然还少不了移动文件指针的函数, seek(offset, from_what)用于移动文件指针, tell()用于返回文件指针的当前位置

open()是file()的一个别名,即它们的作用是相同的. 上面的例子也可以用open来代替file

注意,用这种方法只能从文件读写字符串.要读写数字,就必须用int(),float()等进行强制类型转换. 要读写其他类型的对象,就要用pickle模块.



转载请注明出处 http://fornote.blogspot.com

没有评论:

发表评论