python--目录操作

目录操作:

一、os.getcwd()

获取当前工作目录,即当前Python脚本工作的目录路径。

代码示例:

import os

currentPath = os.getcwd()

print ("当前工作目录:", currentPath)

二、os. chdir(path)

改变当前脚本工作目录;相当于shell下的cd命令。

代码示例:

import os

currentPath = os.getcwd()

print ("当前工作目录:", currentPath)

os.chdir(r'c:\users')    --改变工作目录

print ("改变后的工作目录:", os.getcwd())

三、os.pardir

返回当前目录的父目录('..')

代码示例:

import os

print (os.pardir)

print(os.getcwd())

os.chdir("e:\\test")

print(os.getcwd())

os.chdir(os.pardir)

print(os.getcwd())

四、获取当前使用的操作系统类型(其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix)。

代码示例:

print os.name

五、os.mkdir(path [, mode=0777])

生成单级目录;相当于linux中的mkdir dirname。参数mode表示生成的目录的权限,默认是超级权限,也就是0777。如果重复创建,会报错

代码示例:

import os

os.mkdir(r'c:\test')    --在c:盘下生成test的目录

六、os.makedirs(path [, mode=0777])

可生成多层递归目录,父目录如果不存在,递归生成。参数mode表示生成的目录的权限,默认是超级权限,也就是0777。

代码示例:

import os

os.makedirs(r'c:\test111\test')    --在c盘录下生成test111目录,并在目录下新建test目录

七、os.removedirs(path)

若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推。

代码示例:

import os

os.removedirs(r'c:\test111\test')    --删除test111和test目录成功

八、os.rmdir(path)

删除单级空目录,若目录不为空则无法删除,会报错;相当Linux中的rmdir dirname。

代码示例:

import os

os.rmdir(r'c:\test')    --删除test目录

九、os.listdir(path)

列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。

代码示例:

import os

dirContent = os.listdir(r'c:\users')

print(dirContent)

十、os.remove(filePath)

删除一个指定的文件,参数filePath表示文件所在的路径。

注意:该方法只能删除文件,不能删除目录。

代码示例:

#encoding=utf-8

import os

os.remove(r'c:\test.txt')    --test.txt文件被删除

十一、os.rename(oldname, newname)

重命名文件/目录。

代码示例:

#encoding=utf-8

import os

os.rename(r'c:\test1.txt',r"c:\test2.txt")    --test1.txt的文件名被修改为test2

十二、os.access(path, mode)

输出文件权限模式。

代码示例:

#encoding=utf-8

import os

print (os.access(r'c:\gloryroadtest.txt', os.W_OK))

print (os.access(r'c:\gloryroadtest.txt', os.R_OK))

print (os.access(r'c:\gloryroadtest.txt', os.X_OK))

W写,R读,X可执行,输出True,False。

十三、os.chmod(path, mode)

修改文件的权限。

代码示例:

#encoding=utf-8

import os

os.chmod(r'c:\gloryroadtest.txt', 777)

Linux上会有效,设定文件权限为可读、可写和可执行

十四、os.walk(top, topdown=True, onerror=None, followlinks=False)

➢top:表示需要遍历的目录树的路径。

➢topdown的默认值是“True”,表示首先返回目录树下的文件,然后遍历目录树下的子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件。

➢onerror的默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。

➢该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表示每次遍历的路径名,目录列表和文件列表。

➢默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks设定为true

代码示例:

import os

for root, dirs, files in os.walk("e:\\blog",topdown=False) :

    print(u"当前目录:",root) #打印目录绝对路径

    for name in files :

        print(u'文件名:',os.path.join(root,name) )#打印文件绝对路径

    for name in dirs :

        print(u'目录名:',name) #打印目录绝对路径

十五、os.path.split(path)

将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。

代码示例:

import os

pathTup = os.path.split(r'c:\gloryroad.txt')

print (pathTup)

十六、os.path.exists(path)

判断path是否存在,如果存在返回True,否则返回False。

代码示例:

import os

res = os.path.exists(r'd:\gloryroad\a.py')

print (res)

十七、os.path.isfile(path)

判断path是否是文件,如果是返回True,否则返回False。

代码示例:

import os

print (os.path.isfile(r'd:\gloryroad\a.py'))

print (os.path.isfile(r'c:\test'))

十八、os.path.isdir(path)

判断path是否是目录,如果是目录返回True,否则返回False。

代码示例:

import os

print (os.path.isdir('d:\\gloryroad'))

print (os.path.isdir(r'd:\gloryroad\a.py'))

十九、os.path.getsize(name)

获得文件大小,如果name是目录返回结果是0L或者4096L;如果name代表的目录或文件不存在,则会报WindowsError异常。

代码示例:

import os

print (os.path.getsize("d:\\gloryroad\\a.py"))

二十、os.path.join(a, *p)

连接两个或更多的路径名,中间以“\”分隔,如果所给的参数中都是绝对路径名,那先给的绝对路径将会被丢弃。

代码示例:

import os

print (os.path.join('c:\\aa', 'test', 'a.txt'))

print (os.path.join('c:\\aa', 'c:\\test', 'd:\\a.txt'))

二十一、os.path.getatime(filename)

返回文件的最后访问时间,返回的是时间戳。

代码示例:

import os

import time

lastTime = os.path.getatime(r"d:\gloryroad\a.py")    --获取文件最后访问时间

print (lastTime)

formatTime = time.localtime(lastTime)    --将时间戳转成时间元组

print (formatTime)    

print (time.strftime("%Y-%m-%d %H:%M:%S",formatTime))    --格式化时间元组为时间字符串

二十二、os.path.getctime(filename)

以时间戳的形式返回文件或目录的创建时间,在Unix系统上是文件最近更改的时间,在Windows上是文件或目录的创建时间。

代码示例:

import os

import time

lastTime = os.path.getctime(r"d:\gloryroad\a.py")    --获取文件最后存取时间

print (lastTime)

formatTime = time.localtime(lastTime)    --将时间戳转成时间元组

print (formatTime)

print (time.strftime("%Y-%m-%d %H:%M:%S", formatTime))    --格式化时间元组为时间字符串

练习题

1.基础题:

    检验给出的路径是否是一个文件:os.path.isfile("D:\\test.txt")

    检验给出的路径是否是一个目录:os.path.isdir("D:\\test.txt")

    判断是否是绝对路径:os.path.isabs("D:\\test.txt")

    检验给出的路径是否真地存在:

2.返回一个路径的目录名和文件名:os.listdir("D:\\")

3.分离文件名与扩展名:os.path.splitext("D:\\test.txt")

4.找出某个目录下所有的文件,并在每个文件中写入“gloryroad”

>>> for files in os.walk("D:\\test"):

...    print(files)

...

('D:\\test', [], ['a.txt', 'b.txt', 'test.txt', 'test1.txt'])

>>> with open("D:\\test\\a.txt","w+") as f:

...    f.write("gloryroad")

5.如果某个目录下文件名包含txt后缀名,则把文件后面追加写一行“被我找到了!”

6. 命题练习:

    1) 一个目录下只有文件(自己构造),拷贝几个文件(手工完成)

    2 )用listdir函数获取所有文件,如果文件的创建时间是今天,那么就在文件里面写上文件的路径、文件名和文件扩展名

    3) 如果不是今天创建(获取文件的创建时间,并转化为时间格式,判断是否今天),请删除

    4 )计算一下这个程序的执行耗时

7.删除某个目录下的全部文件

8.统计某个目录下文件数和目录个数

9.使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件

10. 查找某个目录下是否存在某个文件名

11. 用系统命令拷贝文件

12.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能

13.遍历某个目录下的所有图片,并在图片名称后面增加

14、遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件

15、过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功

16、文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.

17、从命令行接受1个路径如:c:\a\b\c\1.py, 实现1个函数创建目录a\b\c,创建文件1.py,实现1个函数删除已创建的目录及文件

18、有一个ip.txt,里面每行是一个ip,实现一个函数,ping 每个ip的结果,把结果记录存到ping.txt中,格式为ip:0或ip:1 ,0代表ping成功,1代表ping失败

19、实现DOS命令执行功能,接受输入命令并执行,然后把执行结果和返回码打印到屏幕

20、文件访问

    访问一存在多行的文件,实现每隔一秒逐行显示文本内容的程序,每次显示文本文件的 5行, 暂停并向用户提示“输入任意字符继续”,按回车键后继续执行,直到文件末尾。

    显示文件的格式为:[当前时间] 一行内容,比如:[2016-07-08 22:21:51] 999370this is test

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,350评论 0 17
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,718评论 0 10
  • 一、目录遍历 os 用于获取系统的功能,主要用于操作文件或者文件夹代码演示:import ospath = r...
    hollow_02f9阅读 1,565评论 0 0
  • From: http://www.cnblogs.com/zhoujie/archive/2013/04/10/p...
    pzka158阅读 1,769评论 0 1
  • 一个人是要多接触不同的人, 这样才能心胸开阔,看的开,不再在自己的小世界里自怨自艾。比如路远,我的邻居和我一样远。...
    蜂蜜87阅读 253评论 0 0