1、取得当前目录——os.getcwd()
>>> import os >>> s=os.getcwd()#获得当前运行脚本所在目录 >>> s \'/Users/guanbinbin\'
比如运行test.py,那么输入该命令就会返回脚本所在的文件夹位置。
例如将test.py放入A文件夹。并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹。且文件夹的名字根据时间自动生成。
>>> import os >>> import time >>> folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime()) >>> os.makedirs(r\'%s/%s\'%(os.getcwd(),folder)) #创建以时间命名文件夹名
/Users/guanbinbin/2020-04-06_13-24-14
这是运行脚本的目录即\'/Users/guanbinbin/\'下多了一个以当前时间命名的文件夹2020-04-06_13-24-14
2、创建子目录——os.makedirs("path"),path是要创建的子目录
>>> os.makedirs("/Users/guanbinbin/2020-04-06_13-24-14/temp") #这是2020-04-06_13-24-14文件夹下创建temp目录
(当然,也可能创建失败,比如path已存在,或者驱动器不在,或者无写权限等等)
3、更改当前目录——os.chdir()
相当于dos或Linux下的cd命令
>>> os.chdir(\'c:\\\') #将当前目录改为C盘根目录下
4、将路径分解为目录名和文件名——os.path.split()
格式为:fpath , fname = os.path.split( "要分解的路径")
>>> a,b=os.path.split("/Users/guanbinbin/2020-04-06_13-24-14/test.txt")
>>> a
\'/Users/guanbinbin/2020-04-06_13-24-14\'
>>> b
\'test.txt\'
>>>
5、分解文件名的扩展名——os.path.splitext()
格式为:fpath_name , ftext = os.path.splitext( "要分解的路径")
>>> a,b=os.path.splitext("/Users/guanbinbin/2020-04-06_13-24-14/test.txt")
>>> a
\'/Users/guanbinbin/2020-04-06_13-24-14/test\'
>>> b
\'.txt\'
>>>
6、判断一个路径(目录或文件)是否存在——os.path.exists()
格式为:os.path.exists(“要判断的路径或文件”)
>>> os.path .exists("/Users/guanbinbin/2020-04-06_13-24-14") //该路径是否存在
True
>>> os.path .exists("/Users/guanbinbin/2020-04-06_13-24-14/test.txt") //该文件是否存在
True
>>> os.path .exists("/Users/guanbinbin/2020-04-06_13-24-14/test1.txt")
False
>>>
7、判断一个路径是否有需要的文件——os.path.isfile("文件")
>>> os.path .isfile("/Users/guanbinbin/2020-04-06_13-24-14/test1.txt")
False
>>> os.path .isfile("/Users/guanbinbin/2020-04-06_13-24-14/test.txt")
True
>>>
8、判断一个路径是否存在——os.path.isdir("路径")
>>> os.path .isdir("/Users/guanbinbin/2020-04-06_13-24-14/")
True
>>> os.path .isdir("/Users/guanbinbin/2020-04-06_13-24-14/haha/")
False
9、获取目录中的文件及子目录的列表——os.listdir("路径")
相当于Windows下powershell中获取Get-ChildItem命令和Linux中的ls命令。但是这个显示不是以常见的列表的形式:
>>> os.listdir("/Users/guanbinbin/") #这里包括隐藏文件也显示出来了
[\'Music\', \'.zcompdump-管彬彬的MacBook Pro-5.3\', \'.DS_Store\', \'.CFUserTextEncoding\', \'test\', \'.hgignore_global\', \'IMG_9186的副本.JPG\', \'.zshrc\', \'.local\', \'Pictures\', \'2020-04-06_13-24-14\', \'.zsh_history\', \'Desktop\', \'Library\', \'.oracle_jre_usage\', \'.ShadowsocksX-NG\', \'.android\', \'Pipfile\', \'.gitignore_global\', \'Public\', \'Virtual Machines.localized\', \'.ssh\', \'Movies\', \'Applications\', \'.Trash\', \'.gitflow_export\', \'hosts\', \'Documents\', \'.mysql_history\', \'.bash_profile\', \'.oh-my-zsh\', \'Downloads\', \'.gitconfig\', \'.bash_history\', \'.viminfo\']
示例:获取指定目录下的所有子目录的列表
>>> def getDirList( p ):
... p = str( p )
... if p=="":
... return [ ]
... if p[ -1] != "/":
... p = p+"/"
... a = os.listdir( p )
... b = [ x for x in a if os.path.isdir( p + x ) ]
... return b
...
>>> getDirList("/Users/guanbinbin")
[\'Music\', \'test\', \'.local\', \'Pictures\', \'2020-04-06_13-24-14\', \'Desktop\', \'Library\', \'.oracle_jre_usage\', \'.ShadowsocksX-NG\', \'.android\', \'Public\', \'Virtual Machines.localized\', \'.ssh\', \'Movies\', \'Applications\', \'.Trash\', \'Documents\', \'.oh-my-zsh\', \'Downloads\']
>>>
>>> os.rmdir("/Users/guanbinbin/2020-04-06_13-24-14/temp")#这里删除了temp目录