Python中的os模块提供了操作系统相关功能的函数,可以更加方便的在python脚本中对linux的文件目录的处理和shell的应用。
os.system("bash")
运行shell命令,直接显示
1#应用ls命令查看当前目录下的文件>>> import os 2>>> print(os.system('ls')) 3alien_invasion.py anzhaung.py mpl_squares.py Python-3.6.3 Python-3.6.3.tgz Python-3.6.3.tgz.1 root.py 4>>>
os.environ
获取环境变量
1>>> print(os.environ) 2{'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: 3.......... 4>>>
os.getcwd()
获取当前工作目录,即当前python脚本工作的目录路径
1>>> print(os.getcwd()) 2/home/feiji 3>>>
os.chdir()
修改当前脚本的工作目录,相当于cd
1>>> os.chdir("/home") 2>>> print(os.getcwd()) 3/home 4>>>
os.curdir
返回当前目录 ‘.’ 我理解的是上面用os.chdir修改了工作目录,这里返回的话应该是/home/feiji才对,但是确实/home
1>>> os.curdir 2'.' 3>>> print(os.getcwd()) 4/home
os.makedirs('目录1/目录2')
生成多层递归目录相当于 mkdir -r
1>>> os.makedirs('new1/new2') 2>>> print(os.system('ls')) 31.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 42.sh 47.98.190.211 abc a.tex error.log free.sh jdk-8u131-linux-x64.rpm new1 5>>>
os.mkdir('新目录')
生成单层新目录
1>>> os.mkdir('new2') 2>>> print(os.system('ls')) 31.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 42.sh 5.sh a.tex feiji jdk-8u131-linux-x64.rpm new2 5 6>>>
os.removedirs('')
删除多层目录,可以看到上面建立的/new1/new2没有了 注意:只有目录为空时才删除
1>>> os.removedirs('/home/new1/new2') 2>>> print(os.system('ls')) 31.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 42.sh 47.98.190.211 abc a.tex error.log free.sh jdk-8u131-linux-x64.rpm new2 5>>>
os.rmdir('')
删除单层目录
1>>> print(os.rmdir('new2')) 2None
os.remove('')
删除一个文件
1>>> print(os.remove('1.sh')) 2None
os.listdir('')
列出指定目录下的文件和目录
1>>> print(os.listdir('feiji')) 2['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'] 3>>>
os.rename('old','new')
重命名文件或目录
>>> os.rename('2.sh','22.sh')
os.stat('')
查看文件或目录属性信息
1>>> os.stat('22.sh') 2posix.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)