您的位置:首页 > 编程语言 > Python开发

【Python】Python文件系统功能:os模块

2017-07-04 20:42 447 查看

1.os模块方法分类

(1)目录:

chdir()         改变工作目录
chroot()        设定当前进程的根目录
listdir()       列出指定目录下的所有文件名
mkdir()         创建指定目录
makedirs()      创建多级目录
getcwd()        返回当前工作目录
rmdir()         删除指定目录
removedirs()    删除多级目录

(2)文件:

mkinfo()        创建管道
mknod()         创建设备文件
remove()        删除文件
unlink()        删除链接文件
rename()        重命名
stat()          返回文件状态信息
symlink()       创建符号链接
utime()         更新时间戳
tmpfile()       创建并打开(w+b)一个新的临时文件

(3)访问权限

access(path, mode)      判断指定用户是否有访问权限      os.access('/tmp',0)   uid为0用户是否有权限访问/tmp目录
chmod(path,mode)        修改权限        os.chmod('/tmp/s',0640) 将/tmp/s 权限修改为640
chown(path,uid,gid)     修改属主、属组
umask()                 设置默认权限模式        os.umask(022)

(4)设备文件

makedev()       创建设备
major()         指定设备获取主设备号
minor()         指定设备获取次设备号

(5)文件描述符

open()          较低的IO打开
read()          较低的IO读
write()         较低的IO写

4、5相对用的少
补充:
os.walk()   相当于tree命令
>>> import os
>>> a1 = os.walk('/root')
>>> a1.next()
('/root',
['.subversion', '.ssh', '.ipython', '.pki', '.cache'],
['test.py',
'.bash_history',
'.cshrc',
'.bash_logout',
'.tcshrc',
'.bash_profile',
'.mysql_history',
'.bashrc',
'.viminfo'])
返回一个元组,由(文件名,[文件夹],[文件]) 组成

2.os模块中的path模块

1)跟文件路径相关

basename()      路径基名
dirname()       路径目录名
join()          整合文件名
split()         返回dirname(),basename()元组
splitext()      返回(filename,extension)元组

例:
>>> dir1 = os.path.dirname('/etc/sysconfig/iptables-config')
>>> dir1
'/etc/sysconfig'
>>> file1 = os.path.basename('/etc/sysconfig/iptables-config')
>>> file1
'iptables-config'
>>> os.path.join(dir1,file1)
'/etc/sysconfig/iptables-config'
>>> for filename in os.listdir('/tmp'):
print os.path.join('/tmp',filename)

2)信息

getatime()      返回文件最近一次访问时间
getmtime()      返回文件最近一次修改时间
getctime()      返回文件最近一次改变时间
getsize()       返回文件的大小

3)查询

exists()        判断指定文件是否存在    isabs()         判断指定的路径是否为绝对路径
isdir()         是否为目录
isfile()        是否为文件
islink()        是否符号链接
ismount()       是否为挂载点
sanefile(f1,f2) 两个路径是否指向了同一个文件

例:判断文件是否存在,存在则打开,让用户通过键盘反复输入多行数据,追加保存至此文件中
>>> import os
>>> import os.path
>>> if os.path.isfile('/tmp/s'):
f1 = open('/tmp/s','a+')
while True:
a2 = raw_input("Input >> ")
if a2 == 'q' or a2 == 'quit' :
break
f1.write(a2+'\n')
f1.close()

4)对象持久存储

把变量从内存中变成可存储或传输的过程称之为序列化
pickle、marshal、DBM接口、shelve模块

pickle   将内存对象持久存储在文件中
>>> import pickle
>>> dict1 = {'x':1,'y':2,'z':'hello world'}
>>> f1 = open('/tmp/s','a+')
>>> pickle.dump(dict1,f1)           通过流逝化将字典保存在文件中
>>> f1.close()
# file /tmp/s
/tmp/s: ASCII text
# cat /tmp/s
(dp0
S'y'
p1
I2
sS'x'
p2
I1
sS'z'
p3
S'hello world'
p4
s.
>>> f2 = open('/tmp/s','a+')
>>> dict2 = pickle.load(f2)         重新装载
>>> dict2
{'x':1,'y':2,'z':'hello world'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: