os模块提供了多个访问操作系统服务的功能,
##1.os模块中文件的操作
os模块中文件管理常用方法
*获取当前所在位置的绝对路径
print(os.getcwd())
*列出指定目录下的内容
pprint.pprint(os.listdir('/var/log'))
对文件和目录的操作
os.mknod('/tmp/westos') #创建空文件
os.remove('/tmp/westos') #删除文件
os.mkdir('/tmp/westosdir') #创建一个目录
os.makedirs('/tmp/ok/westosdir') #递归创建目录
os.removedirs('/tmp/ok/westosdir')#删除目录
print(os.path.isfile("/etc/passwd"))#判断是否是一个文件
print(os.path.isabs("~/passwd"))#判断是否是绝对路径
#判断文件或目录是否存在
print(os.path.exists('/etc/passwds'))
print(os.path.exists('/mnt'))
对文件名进行操作
分离底层文件或目录名
print(os.path.split('/etc/passwd/hh'))
显示当前操作系统的分隔符
print(os.path.sep) #\
获取文件名
print(os.path.basename('/hello/hello.py'))
获取目录名
print(os.path.dirname('/hello/hello.py'))
将文件名后缀和基本文件名分离
print(os.path.splitext("/hello/hello.py"))
移动文件也可以更改文件名称相当于linux中的mv
os.rename('/tmp/passwdok', '/mnt/passwdok')
#####os模块的应用(修改文件后缀)
def modify_suffix(dirname, old_suffix, new_suffix):
if '.' not in old_suffix:
old_suffix = "." + old_suffix
if '.' not in new_suffix:
new_suffix = '.' + new_suffix
# 1. 判断目录是否存在
if os.path.exists(dirname):
# 2. 找出所有以.jpg结尾的文件; # hello1.jpg ====> hello1.png
jpgnames = [filename for filename in os.listdir(dirname) if filename.endswith(old_suffix)]
# 3. 所有以.jpg结尾的文件,去掉后缀名
base_names = [os.path.splitext(filename)[0] for filename in jpgnames]
for filename in base_names:
dirname = os.path.abspath(dirname) + os.path.sep
old_name = dirname + filename + old_suffix
new_name = dirname + filename + new_suffix
# 重命名时一定要用绝对路径;
os.rename(old_name, new_name)
print("%s重命名为%s成功!" % (old_name, new_name))
else:
print("%s目录不存在" % (dirname))
##2.补充的其他常用函数
- environ 对环境变量进行映射
print(os.environ['PYTHONPATH']) #访问当前所在路径的环境变量
print(os.environ['HOSTNAME']) #访问主机名的环境变量
- 在子shell中执行操作系统命令
os.system('ls') #相当于在终端执行ls命令