创建对象后返回的是一个内存地址,通常需要一个变量名来引用这个内存地址,
文件的打开模式:
1、简单模式
- r:只读
- open('/var/log/message.log','r') //以只读模式打开文件
- w:写入 //从文件指针出开始覆盖
- a:附加 //从文件尾部
2、在模式后使用“+”表示同时支持输入、输出操作
- 如r+、w+和a+ //比如w+表示读写模式的写操作,本来是写操作,也可以读
3、在模式后附加“b”表示以二进制方式打开
- 如rb、wb+
文件对象:
文本都是字节序列
var_name = open (file_name[mode,[bufsize]])
- mode:
- r、w、ad、r+、w+、a+
- b表示已二进制模式打开文件
- rb、wb、ab、rb+、wb+、ab+
- 缓存:
- 0:禁用,表示不使用缓存
- 负数:表示使用系统默认的缓存
- 1:表示使用缓存,只缓冲一行数据
- 2+:指定缓冲空间大小,整数表示使用大小的缓冲区
如何移动指针
file.seek(offset[whence])
whence:起点(从什么地方开始偏移)
- 0:从文件头,默认
- 1:从当前位置
- 2:从文件尾
offset:偏移量
read表示读多少个字节的,readline表示读行的
练习:输入1到10之间所有正整数平方的结果写到一个文件
flush 刷写缓冲区 close关闭文件
文件系统模块:os
目录:
chdir():切换工作目录
chroot():设定当前进程的根目录
listdir():列出指定目录下的所有文件名
mkdir():创建指定目录
makedirs():创建多久目录
getcwd():获取工作目录
rmdir():删除目录
removedirs():删除多级目录
文件:
mkfifo():创建管道
mknod():创建设备文件
remove():删除文件
unlink():删除链接文件
rename():重命名
stat():放回文件的状态信息
symlink():创建链接文件
utime():更新时间戳
tmpfile():创建并打开(w+b)一个新的临时文件
walk():创建目录树
访问权限相关的
access():检验某个用户或用户组的权限模式
chmod():修改权限
chown():修改属主和属组
umask():设置默认权限模式
文件描述符:
open():底层操作系统的open()
read():
write():
设备文件:
makedev():
major():获取主设备号
minor():获取次设备号
路径管理:
import os.path
basename():路径基名
dirname():路径目录名
join():整合文件名
split():返回dirname(),basename()元组
splitext():返回(filename,extension)元组
信息:
getatime()
getctime()
getmtime()
getsize():返回文件的大小
查询
exists():判断指定文件是否存在
isabs():判断指定的路径是否为绝对路径
isdir():是否为目录
isfile():是否为文件
islink():是否为符号链接
ismount():是否为挂载点
samefile():两个路径是否指向了同一个文件
练习:判断文件是否存在,存在则打开
让用户通过键盘反复输入多行数据
追加保存至此文件中
#!/usr/bin/python
import os
import os.path
filename=raw_input('plz a file name:')
if os.path.isfile(filename):
openname= open(filename,'a+')
while True:
newline=raw_input('plz a line:')
if newline == 'q' or newline =='quit':
break
else:
openname.write(newline+'\n')
openname.close()
对象持久存储
pickle
marshal
DBM接口
shaelve模块