os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下表所示:
一.os.getcwd
相当于shell的
pwd,查看当前目录
[root@rhel8 day06]# vim demo01.py
import os
print(os.getcwd()) #查看当前目录[root@rhel8 day06]# python3 demo01.py
/root/mypython/day06
二.os.listdir查看当前目录
相当于ls -A
[root@rhel8 day06]# vim demo01.py
import os
print(os.listdir("/root")) #查看root目录有哪些文件[root@rhel8 day06]# python3 demo01.py
['.bash_logout', '.bash_profile', '.bashrc', '.cshrc', '.tcshrc', 'anaconda-ks.cfg', '.cache', '.dbus', '.config', 'initial-setup-ks.cfg', '.esd_auth', '.ICEauthority', '.local', '桌面', '下载', '模板', '公共', '文档', '音乐', '图片', '视频', '.pki', '.bash_history',hon_history', 'day01', '.ssh', '.Xauthority', 'bin', 'pycharm1', '.java', 'mypython', 'java_error_in_PYCHARM_2630.log', '.viminfo']
三.os.mkdir创建目录
相当于mkdir
[root@rhel8 day06]# ls /tmp/demo
ls: 无法访问'/tmp/demo': 没有那个文件或目录
[root@rhel8 day06]# vim demo01.py
import os
os.mkdir("/tmp/demo")
[root@rhel8 day06]# python3 demo01.py
[root@rhel8 day06]# ls /tmp/demo
四.os.makedirs递归创建目录
相当于mkdir -p
[root@rhel8 day06]# ls /tmp/test #/tmp/test目录不存在
ls: 无法访问'/tmp/test': 没有那个文件或目录
[root@rhel8 day06]# vim demo01.py
import os
os.makedirs("/tmp/test/abc") #创建/tmp/test/abc目录
[root@rhel8 day06]# python3 demo01.py
[root@rhel8 day06]# ls /tmp/test/abc/
五.os.chdir切换目录
相当于cd
[root@rhel8 day06]# vim demo01.py
import os
print(os.getcwd()) #输出所在目录
os.chdir("/tmp/demo") #切换目录
print(os.getcwd()) #输出所在目录
[root@rhel8 day06]# python3 demo01.py
/root/mypython/day06
/tmp/demo
六.删除文件os.remove
[root@rhel8 day06]# touch /tmp/demo/a.txt
[root@rhel8 day06]# ls /tmp/demo/
a.txt
[root@rhel8 day06]# vim demo01.py
import os
os.remove("/tmp/demo/a.txt") #删除a.txt文件
[root@rhel8 day06]# ls /tmp/demo/
#尝试使用remove删除demo目录
[root@rhel8 day06]# vim demo01.py
import os
os.remove("/tmp/demo")
[root@rhel8 day06]# python3 demo01.py
Traceback (most recent call last):File "demo01.py", line 2, in <module>os.remove("/tmp/demo")
IsADirectoryError: [Errno 21] Is a directory: '/tmp/demo'
#os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出Error。
要想删除目录,需要使用shutil.rmtree
[root@rhel8 day06]# vim demo01.py
import os,shutil
shutil.rmtree("/tmp/demo")
[root@rhel8 day06]# python3 demo01.py
[root@rhel8 day06]# ls /tmp/demo
ls: 无法访问'/tmp/demo': 没有那个文件或目录
七.os.symlink软链接
相当于ln -s
[root@rhel8 day06]# vim demo01.py
import os,shutil
os.symlink("/etc/passwd","mima")
[root@rhel8 day06]# ll
总用量 4
-rw-r--r-- 1 root root 49 12月 11 22:44 demo01.py
lrwxrwxrwx 1 root root 11 12月 11 22:44 mima -> /etc/passwd
八.os.unlink取消软链接
[root@rhel8 day06]# vim demo01.py
import os,shutil
os.unlink("mima")
[root@rhel8 day06]# python3 demo01.py