>>> import os  #引入目录操作的包os
>>> os.getcwd(#获取当前的工作目录  c:current   w:wording   d:directory
'C:\\Users\\dell'
>>>
>>> os.chdir("d:\\pic")   #chdir切换目录
>>> os.getcwd()
'd:\\pic'
>>> os.listdir()  #查看当前目录下有什么文件(只显示第一层),括号里可以指定参数路
['1.jpg', 'baidu.html']
 
>>> import os.path
>>> os.path.isdir("d:\\pic")   #isdir判断是否是目录
True
>>> os.path.isdir("d:\\pic\\1.jpg")
False
>>> os.path.isdir("d:\\a.txt")
False
>>> os.path.isfile("d:\\a.txt")   #isfile判断是否是文件
True
>>>
 
 
 
小练习:统计一个目录下(一层目录),统计一下有多个文件
统计一下有多少个目录
算法:
1 定义文件计数的变量
2 定义文件夹计数的变量,并赋值0
3 使用os.listdir()获取所有的文件和目录名称,这个返回值是列表
4 使用for 进行遍历,使用os.path.isdir和isfile来分别判断是文件还是目录
如果是文件,则在文件计数的变量上+1,否则在目录计数的变量上加一
5 输出统计结果:文件计数和目录计数的变量值
import os
import os.path
file_count = 0
dir_count =0
 
for i in os.listdir("d:\\pic"):
    print("取出的内容:",i)
    if os.path.isfile("d:\\pic\\"+i):
        file_count+=1
    else:
        dir_count+=1
print("文件个数:%s" %file_count)
print("目录个数:%s" %dir_count)
 
 
 
>>> os.getcwd()
'd:\\pic'
>>> os.remove("d:\\pic\\1.jpg")    #删除文件,只能一次删除一个文件
>>> os.listdir()
['baidu.html']
>>>
 
>>> os.mkdir("d:\\pic\\testman")   #创建目录
>>> os.mkdir("d:\\pic\\testman\\testman1")
>>> os.mkdir("d:\\pic\\testman\\testman1\\testman3")
>>> os.mkdir("d:\\pic\\testman\\testman1\\testman4")
>>>
 
#删除目录
>>> os.mkdir("d:\\pic\\testman")
>>> os.mkdir("d:\\pic\\testman\\testman1")
>>> os.mkdir("d:\\pic\\testman\\testman1\\testman3")
>>> os.mkdir("d:\\pic\\testman\\testman1\\testman4")
>>> os.removedirs("d:\\pic\\testman\\testman1\\testman3")  
>>> os.removedirs("d:\\pic\\testman\\testman1\\testman4")   #删testman4的时候把它的上级testman1和上上级testman中,只要是非空的目录一并删了,递归删除空目录
从路径的下面开始删除空目录,如果遇到了某个
目录非空(包含子目录或者文件)就停止删除目录了 
 
os.removedirs() 方法用于递归删除目录。
像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
 
os.remove() 方法用于删除指定路径的文件。
如果指定的路径是一个目录,将抛出OSError。
在Unix, Windows中有效
 
>>> os.getcwd()
'd:\\pic'
>>> os.path.isabs("a.txt")  #判断是否是绝对路径
False
>>> os.path.isabs("d:\\a.txt")
True
>>>
>>> if not os.path.exists("e:\\pic1\\2.txt"):
...     with open("e:\\pic1\\2.txt","w") as fp:
...         fp.write("")
 
创建一个10级目录,每个目录的名字从gloryroad1-10,每个目录创建一个文件,文件的名字是1-10.txt,文件内容写上文件名
算法:
1 写一个for 循环,循环10次
2 在循环体下,创建一个目录为gloroadi(i是循环的变量值),os.chdir进入到新创建的目录,然后用with方法创建文件,
文件名使用i变量+".txt"的方式来拼接文件名,然后使用w模式,给文件写内容,写的文件内容就是拼接的文件名
import os
dir_name = "glroyroad"
os.chdir("d:\\pic")
for i in range(1,11):
    os.mkdir(dir_name+str(i))
    os.chdir(dir_name+str(i))
    with open(str(i)+".txt","w") as fp:
        fp.write(str(i)+".txt")
 
 
>>> os.path.split("d:\\pic\\bd.html")   #切割文件名和文件路径
('d:\\pic', 'bd.html')
>>> os.path.split("d:\\pic\\bd.html")[0]  #获取文件路径
'd:\\pic'
>>> os.path.split("d:\\pic\\bd.html")[1]   #获取文件名
'bd.html'
>>>
##等同于下面的两个api
 
>>> os.listdir()
['baidu.html']
>>> os.listdir("d:\\")
['$RECYCLE.BIN', '360downloads', '360WiFi', '360极速浏览器下载', '360驱动大师目录', 'a.py', 'a.txt', 'aa.py', 'apache-maven-3.6.1', 'apache-tomcat-8.5.40', 'apache-tomcat-8.5.43', 'AutoTestLog.log', 'b.txt', 'BaiduNetdiskDownload', 'CloudMusic', 'dataDriveRreport.log', 'fdf98c88a68350d8deab4a0ae668ba20', 'iDownload', 'library_data.txt', 'LR', 'mgtv', 'mgtv.cache', 'packagea', 'php', 'pic', 'python', 'qq.jtl', 'road', 'sample.xlsx', 'sohu.jtl', 'System Volume Information', 'VM box', 'wamp', 'Youku Files', '__pycache__', '常用文档', '软件', '迅雷下载']
>>> os.path.dirname("d:\\pic")   #获取路径名
'd:\\'
>>> os.path.dirname("d:\\pic\\baidu.html")
'd:\\pic'
>>> os.path.basename("d:\\pic\\baidu.html")   #获取文件名
'baidu.html'
>>>
 
>>> os.path.splitext("d:\\pic\\baidu.html")   #切割文件名后缀和路径
('d:\\pic\\baidu', '.html')
>>> os.path.splitext("d:\\pic\\baidu.html")[0]   
'd:\\pic\\baidu'
>>> os.path.splitext("d:\\pic\\baidu.html")[1]
'.html'
>>>
 
>>> os.listdir()
['baidu.html']
>>> os.rename("baidu.html","bd.html")  #改名
>>> os.listdir()
['bd.html']
>>> os.path.getsize("d:\\pic\\bd.html")   #获取文件大小(字节数)
15625
 
>>> os.getcwd()
'd:\\pic'
>>> os.rmdir("test")
>>> os.mkdir("d:\\pic\\test")
>>> os.listdir()
['bd.html', 'test']
>>> os.rmdir("test")  #删除目录
>>> os.listdir()
['bd.html']
>>>
 
 
#join拼接路径
>>> os.path.join("d:\\pic","a.txt")
'd:\\pic\\a.txt'
>>> "d:\\pic\\"+"a.txt"
'd:\\pic\\a.txt'
>>> "d:\\pic"+os.sep+"a.txt"
'd:\\pic\\a.txt'
>>>
posted on 2019-10-04 20:51  腿短毛不多  阅读(194)  评论(0编辑  收藏  举报