Python中的os模块提供了操作系统相关功能的函数,可以更加方便的在python脚本中对linux的文件目录的处理和shell的应用。
os.system("bash")
运行shell命令,直接显示
#应用ls命令查看当前目录下的文件 >>> import os >>> print(os.system('ls')) alien_invasion.py anzhaung.py mpl_squares.py Python-3.6.3 Python-3.6.3.tgz Python-3.6.3.tgz.1 root.py >>>
os.environ
获取环境变量
>>> print(os.environ) {'MAVEN_HOME': '/usr/local/maven', 'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'SSH_CLIENT': '1.202.148.250 55342 22', 'LOGNAME': 'root', 'USER': 'root', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: .......... >>>
os.getcwd()
获取当前工作目录,即当前python脚本工作的目录路径
>>> print(os.getcwd()) /home/feiji >>>
os.chdir()
修改当前脚本的工作目录,相当于cd
>>> os.chdir("/home") >>> print(os.getcwd()) /home >>>
os.curdir
返回当前目录 ‘.’ 我理解的是上面用os.chdir修改了工作目录,这里返回的话应该是/home/feiji才对,但是确实/home
>>> os.curdir '.' >>> print(os.getcwd()) /home
os.makedirs('目录1/目录2')
生成多层递归目录相当于 mkdir -r
>>> os.makedirs('new1/new2') >>> print(os.system('ls')) 1.sh 3.sh 5.sh admin b.sh feiji funcation.sh jq.sh user_00 user_02 user_04 user_06 user_08 user_10 user_12 user_14 user_16 user_18 user_20 2.sh 47.98.190.211 abc a.tex error.log free.sh jdk-8u131-linux-x64.rpm new1 >>>
os.mkdir('新目录')
生成单层新目录
>>> os.mkdir('new2') >>> print(os.system('ls')) 1.sh 47.98.190.211 admin error.log funcation.sh new1 user_01 user_04 user_07 user_10 user_13 user_16 user_19 2.sh 5.sh a.tex feiji jdk-8u131-linux-x64.rpm new2 >>>
os.removedirs('')
删除多层目录,可以看到上面建立的/new1/new2没有了 注意:只有目录为空时才删除
>>> os.removedirs('/home/new1/new2') >>> print(os.system('ls')) 1.sh 3.sh 5.sh admin b.sh feiji funcation.sh jq.sh user_00 user_02 user_04 user_06 user_08 user_10 user_12 user_14 user_16 user_18 user_20 2.sh 47.98.190.211 abc a.tex error.log free.sh jdk-8u131-linux-x64.rpm new2 >>>
os.rmdir('')
删除单层目录
>>> print(os.rmdir('new2')) None
os.remove('')
删除一个文件
>>> print(os.remove('1.sh')) None
os.listdir('')
列出指定目录下的文件和目录
>>> print(os.listdir('feiji')) ['alien_invasion.py', 'anzhaung.py', 'Python-3.6.3', 'root.py', 'Python-3.6.3.tgz.1', 'mpl_squares.py', 'Python-3.6.3.tgz'] >>>
os.rename('old','new')
重命名文件或目录
>>> os.rename('2.sh','22.sh')
os.stat('')
查看文件或目录属性信息
>>> os.stat('22.sh') posix.stat_result(st_mode=33188, st_ino=401743, st_dev=64769L, st_nlink=1, st_uid=0, st_gid=0, st_size=335, st_atime=1564478716, st_mtime=1564478715, st_ctime=1569487383)