1. 文件IO
1.1 file read
样本C:\FILE\ifconfig.txt
root@webserver1 test# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:A2:14:55 inet addr:10.180.137.68 Bcast:10.180.255.255 Mask:255.255.0.0 inet6 addr: fe80::250:56ff:fea2:1455/64 Scope:Link
file.
readline
([size])
读取指定size bytes的整行,返回字符串
with open("C:\FILE\ifconfig.txt") as f: print f.name print repr(f.readline())
执行结果
C:\Python27\python.exe C:/PycharmProjects/p3/src/pyproject1/iotest/fileIOtest.py C:\FILE\ifconfig.txt '[root@webserver1 test]# ifconfig\n'
file.
read
([size])
读取指定size bytes的所有直到EOF,返回字符串
with open("C:\FILE\ifconfig.txt") as f: print f.name print repr(f.read())
运行结果
C:\Python27\python.exe C:/PycharmProjects/p3/src/pyproject1/iotest/fileIOtest.py C:\FILE\ifconfig.txt 'root@webserver1 test# ifconfig\neth0 Link encap:Ethernet HWaddr 00:50:56:A2:14:55 \n inet addr:10.180.137.68 Bcast:10.180.255.255 Mask:255.255.0.0\n inet6 addr: fe80::250:56ff:fea2:1455/64 Scope:Link\n ' Process finished with exit code 0
file.
readlines
([sizehint])
读取指定size bytes的所有直到EOF,返回每行构成的list
with open("C:\FILE\ifconfig.txt") as f: print f.name print repr(f.readlines())
运行结果
C:\Python27\python.exe C:/PycharmProjects/p3/src/pyproject1/iotest/fileIOtest.py C:\FILE\ifconfig.txt ['root@webserver1 test# ifconfig\n', 'eth0 Link encap:Ethernet HWaddr 00:50:56:A2:14:55 \n', ' inet addr:10.180.137.68 Bcast:10.180.255.255 Mask:255.255.0.0\n', ' inet6 addr: fe80::250:56ff:fea2:1455/64 Scope:Link\n', ' ']
1.2 file write
读写模式
r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出。w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建 以a,a+的方式打开文件,附加方式打开 (a:附加写方式打开,不可读;a+: 附加读写方式打开)
file.
write
(str)
f = open("C:\FILE\ifconfig2.txt", 'w+') f.write("foooo" + "\n") f.write("barr")
f.close()
C:\FILE\ifconfig2.txt
foooo
barr
file.
writelines
(sequence)
f = open("C:\FILE\ifconfig2.txt", 'w+') towrite = ["ffffffoooo\n","barbarbar\n","foobarfoobar"] f.writelines(towrite) f.close()
C:\FILE\ifconfig2.txt
ffffffoooo
barbarbar
foobarfoobar
2. file-like Object
像open()函数返回的这种有个read()方法的对象,在Python中统称为file-like Object。除了file外,还可以是内存的字节流,网络流,自定义流等等。file-like Object不要求从特定类继承,只要写个read()方法就行。
StringIO就是在内存中创建的file-like Object,常用作临时缓冲。