4、Python文件对象及os、os.path和pickle模块(0530)

创建对象后返回的是一个内存地址,通常需要一个变量名来引用这个内存地址,

文件的打开模式:

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模块

猜你喜欢

转载自www.cnblogs.com/hanshanxiaoheshang/p/9351868.html
今日推荐