源自廖雪峰网站:
点击打开链接
这节主要讲了通过
import os
模块中提供的功能,实现python对操作系统中文件和目录的操作。习题相关的主要函数有:
os.path.abspath(path)
,显示path
在操作系统中的绝对路径os.path.join(path, x)
,将path
和x
拼接成当前操作系统兼容的路径形式os.listdir(path)
,输出当前目录下的文件及子目录为list
类型 (注意这个是在os下面而不是os.path)os.path.isdir(path) and os.path.isfile(path)
判断路径为目录还是文件,注意参数为path,之前在这里出现了很多错误,直接输文件名的话,没有该文件就直接显示False
练习:
编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
因为目录中可能含有子目录,故用递归比较方便
我的实现:
import os
def find_dir(string,path):
for filename in os.listdir(path):#显示的是当前路径下的文件或者子目录名
cur = os.path.join(path,filename)#把路径合并 得到的可能是文件 或者 一个分支目录
if os.path.isfile(cur) and string in cur:#含有指定字符串并且是文件
print(os.path.abspath(cur))
elif os.path.isdir(cur): #可能有的并非目录也并非要查找的文件类型
find_dir(string,cur)
find_dir('txt','G:\python')
参考其他:
这是python带有的walk方法用于目录、文件的操作
import os
def detect_walk(dir_path):
for root, dirs, files in os.walk(dir_path):
for filename in files:
print "file:%s\n" % filename
for dirname in dirs:
print "dir:%s\n" % dirname
if __name__ == "__main__":
detect_walk(".")