>>> 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.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.listdir() ['baidu.html'] >>> os.listdir("d:\\") ['$RECYCLE.BIN', '2018冬季班光荣之路学习', '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'] >>>