前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 之os模块

Python 之os模块

作者头像
py3study
发布2020-01-08 16:54:31
7270
发布2020-01-08 16:54:31
举报
文章被收录于专栏:python3python3python3

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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档