Python与文件(一)
1、打开文件
Open函数:Open(name[. mode[. buffering]])
其中文件名name为强制参数,模式mode和缓冲buffering为可选参数
eg:f = Open(r'C:\text\somefile.txt')
值 | 描述 |
r | 读模式 |
w | 写模式 |
a | 追加模式 |
b | 二进制模式(处理声音剪辑或图像等二进制文件) |
+ |
读/写模式 |
表1 open函数模式参数常用值
0 或 false | I/O无缓冲,所有的读写操作都直接针对硬盘 |
1 或 true | I/O有缓冲,使用内存代替硬盘,让程序更快。只有使用flush或者close是才会更新硬盘上的数据 |
大于1 | 缓冲区的大小(单位为字节) |
-1 或如何负数 | 使用默认的缓冲区大小 |
表2 open函数缓冲参数
2、读 与 写
.write() .read()
eg:f = open('somefile.txt','+')
f.write('hello')
f.read()
f.read(4) #4为读取字符数
f.close()
3、管式输出
在UNIX的shell中,使用管道可以在一个命令后面续写其他的多个命令
eg:$ cat somefile.txt | python somescript.py | sort
cat somefile.txt:把somefile.txt的内容写到标准输出(sys.stdout)
python somescript.py:运行python脚本,脚本从标准输入读,结果写到标准输出
sort:从标准输入(sys.stdin)读取所有文本,按字母排序,结果写到标准输出
管道命令将一个命令的标准输出和下一个命令的标准输入连在一起,于是就有 somescript.py 从它的sys.stdin中读取somefile.txt写入的数据,并把结果写入它的sys.stdout中,sort可以从中获取到数据。
4、读写行
file.readline 读取单独的一行,包括换行符
file.readlines 读取一个文件的所有行并将其作为列表返回
writelines 传给其一个字符串的列表,它会把所有的字符串写入文件但不会自动换行
没有writeline,使用write方法
5、关闭文件
使用close方法
确保文件关闭,可以用try/finally,在finally中调用close
try:
#write file to your data
finally:
file.close()
也可以用with语句,with语句可以打开文件并将其赋值到变量上,文件会在语句结束后自动关闭
with open("somefile.txt") as somefile:
do_something(somefile)