01.os模块常用方法
import os
#1 当前工作目录,即当前python脚本工作的目录路径
print(os.getcwd()) # C:\Users\admin\PycharmProjects\s14\Day5\test4
#2 当前脚本工作目录;相当于shell下cd
os.chdir("C:\\Users\\admin\\PycharmProjects\\s14")
os.chdir(r"C:\Users\admin\PycharmProjects\s14")
print(os.getcwd()) # C:\Users\admin\PycharmProjects\s14
#3 返回当前目录: ('.')
print(os.curdir) # ('.')
#4 获取当前目录的父目录字符串名:('..')
print(os.pardir) # ('..')
#5 可生成多层递归目录
os.makedirs(r'C:\aaa\bbb') # 可以发现在C盘创建了文件夹/aaa/bbb
#6 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.removedirs(r'C:\aaa\bbb') # 删除所有空目录
#7 生成单级目录;相当于shell中mkdir dirname
os.mkdir(r'C:\bbb') # 仅能创建单个目录
#8 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.rmdir(r'C:\aaa') # 仅删除指定的一个空目录
#9 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
print(os.listdir(r"C:\Users\admin\PycharmProjects\s14"))
#10 删除一个文件
os.remove(r'C:\bbb\test.txt') # 指定删除test.txt文件
#11 重命名文件/目录
os.rename(r'C:\bbb\test.txt',r'C:\bbb\test00.bak')
#12 获取文件/目录信息
print(os.stat(r'C:\bbb\test.txt'))
#13 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
print(os.sep) # \
#14 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
print(os.linesep)
#15 输出用于分割文件路径的字符串
print(os.pathsep) # ; (分号)
#16 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
print(os.name) # nt
#17 运行shell命令,直接显示
os.system("bash command")
#18 获取系统环境变量
print(os.environ) # environ({'OS': 'Windows_NT', 'PUBLIC': ………….
#19 返回path规范化的绝对路径
print(os.path.abspath(r'C:/bbb/test.txt')) # C:\bbb\test.txt
#20 将path分割成目录和文件名二元组返回
print(os.path.split(r'C:/bbb/ccc')) # ('C:/bbb', 'ccc')
#21 返回path的目录。其实就是os.path.split(path)的第一个元素
print(os.path.dirname(r'C:/bbb/ccc')) # C:/bbb
#22 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
print(os.path.basename(r'C:/bbb/ccc/ddd')) # ddd
#23 如果path存在,返回True;如果path不存在,返回False
print(os.path.exists(r'C:/bbb/ccc/')) # True
#24 如果path是绝对路径,返回True # True
print(os.path.isabs(r"C:\Users\admin\PycharmProjects\s14\Day5\test4"))
#25 如果path是一个存在的文件,返回True。否则返回False
print(os.path.isfile(r'C:/bbb/ccc/test2.txt')) # True
#26 如果path是一个存在的目录,则返回True。否则返回False
print(os.path.isdir(r'C:/bbb/ccc')) # True
#28 返回path所指向的文件或者目录的最后存取时间
print(os.path.getatime(r'C:/bbb/ccc/test2.txt')) # 1483509254.9647143
#29 返回path所指向的文件或者目录的最后修改时间
print(os.path.getmtime(r'C:/bbb/ccc/test2.txt')) # 1483510068.746478
#30 无论linux还是windows,拼接出文件路径
put_filename = '%s%s%s'%(self.home,os. path.sep, filename)
#C:\Users\admin\PycharmProjects\s14\day10select版FTP\home
02.os模块使用
2.1 添加文件夹到环境变量
import os,sys
print(os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) ))
BASE_DIR = os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) )
sys.path.append(BASE_DIR)
# 代码解释:
# 要想导入其他目录中的函数,其实就是将其他目录的绝对路径动态的添加到pyhton的环境变量中,这样python解释器就能够在运行时找到导入的模块而不报错:
# 然后调用sys模块sys.path.append(BASE_DIR)就可以将这条路径添加到python环境变量中
2.2 os.popen获取脚本执行结果
data.py
data = {'name':'aaa'}
import json
print json.dumps(data)
get_data.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os,json
ret = os.popen('python data.py')
data = ret.read().strip()
ret.close()
data = json.loads(data)
print data # {'name':'aaa'}