python文件目录操作

会有一股神秘感。 提交于 2020-04-06 14:43:41

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目录
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!