os模块提供了访问多个操作系统服务的功能,os模块的子模块os.path模块也包含了一些文件目录常用操作的函数。
access(path, mode) :检测对文件的访问权限。
>>> os.access('/root/zhu.txt', os.F_OK)
True
>>> os.access('/root/zhu.txt', os.R_OK)
True
>>> os.access('/root/zhu.txt', os.W_OK)
True
>>> os.access('/root/zhu.txt', os.X_OK)
False
os.F_OK :测试路径的存在
os.R_OK :是否有读权限
os.W_OK :是否有写权限
os.X_OK :是否有执行权限
chdir(path) :改变当前的工作目录
os.getcwd() :显示当前的工作目录
>>> os.getcwd()
'/root'
>>> os.chdir('/home')
>>> os.getcwd()
'/home'
chmod(path, mode) :修改文件的权限
>>> os.chmod('/root/zhu.txt',0700)
>>> os.system('ls -l /root/zhu.txt')
-rwx------. 1 root root 94 2月 24 19:08 /root/zhu.txt
>>> os.chmod('/root/zhu.txt',0750)
>>> os.system('ls -l /root/zhu.txt')
-rwxr-x---. 1 root root 94 2月 24 19:08 /root/zhu.txt
这是通过数字方法修改权限,
还有其它模式
chown(path, uid, gid) :改变文件的所属主和所属组
>>> os.system('ls -l /root/zhu.txt')
-rwxr-x---. 1 root root 94 2月 24 19:08 /root/zhu.txt
0
>>> os.chown('/root/zhu.txt',500,500)
>>> os.system('ls -l /root/zhu.txt')
-rwxr-x---. 1 zhu zhu 94 2月 24 19:08 /root/zhu.txt
0
os.link(src, dst) :创建一个硬链接
>>> os.link('/root/zhu.txt','/root/taotao')
[root@localhost ~]# ll
总用量 32924
-rw-r--r--. 1 root root 33692010 2月 20 02:13 mpmt-web.war
drwxr-xr-x. 2 root root 4096 2月 24 23:38 mypython
drwxr-xr-x. 2 root root 4096 2月 18 10:31 myshell
drwxr-xr-x. 2 root root 4096 2月 20 02:07 source
-rwxr-x---. 2 zhu zhu 94 2月 24 19:08 taotao
-rwxr-x---. 2 zhu zhu 94 2月 24 19:08 zhu.txt
os.listdir(path):返回一个列表,目录下面的内容
>>> os.listdir('/root')
['taotao', '.Xauthority', '.bash_logout', '.bash_profile', '.cshrc', '.pythonhistory', '.bashrc', '.viminfo', 'mypython', 'zhu.txt', '.bash_history', 'mpmt-web.war', '.tcshrc', 'source', '.jboss-cli-history', '.lesshst', 'myshell']
os.mkdir(path [, mode=0777]) :创建一个空目录
>>> os.mkdir('/root/zzz',0700)
>>> os.mkdir('/root/yyy')
>>> os.system('ls -ld /root/zzz')
drwx------. 2 root root 4096 2月 25 02:38 /root/zzz
0
>>> os.system('ls -ld /root/yyy')
drwxr-xr-x. 2 root root 4096 2月 25 02:37 /root/yyy
0
模式默认为777,
os.makedirs(path [, mode=0777]):递归创建目录
>>> os.makedirs('/root/aaa/bbb')
>>> os.listdir('/root/aaa')
['bbb']
递归创建目录
os.remove(path):删除一个文件
>>> os.remove('/root/aaa/bbb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 21] Is a directory: '/root/aaa/bbb' #删除目录出错
>>> os.remove('/root/taotao')
#只能删除文件
os.removedirs(path):删除空目录,若是上层目录也是空目录,便一起删除
>>> os.removedirs('/root/aaa/bbb')
>>> os.removedirs('/root/aaa/')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/os.py", line 170, in removedirs
rmdir(name)
OSError: [Errno 39] Directory not empty: '/root/aaa/'
os.rename(old, new):对文件或目录进行重命名
>>> os.rename('/root/aaa','/root/mmm')
>>> os.rename('/root/zhu.txt','/root/tao.txt')
os.rmdir() :删除一个空目录
>>> os.rmdir('/root/mmm')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 39] Directory not empty: '/root/mmm'
>>> os.rmdir('/root/nnn')
os.symlink(source, link_name):创建一个软连接
>>> os.symlink('/root/tao.txt','/root/zhu.txt')
>>> os.system('ls -l /root/*.txt')
-rwxr-x---. 1 zhu zhu 94 2月 24 19:08 /root/tao.txt
lrwxrwxrwx. 1 root root 13 2月 25 03:01 /root/zhu.txt -> /root/tao.txt
0