python提供了一个强大的os库,其中包含有对目录进行操作的方法。
目前用到的方法:
os.listdir(path),可以显示path路径下的所有文件
os.path.join(path1, path2),可以把path1和path2进行拼接,一般尽量用拼接,不要手动拼接,避免出现预期外的问题
os.path.isdir(path),判断当前路径指向的内容是不是一个文件夹,这个用法比较特殊,如果是当前工作目录,则可以使用相对路径来判断,但是
如果目录位置不确定在当前工作目录,一定要用用绝对路径,我就踩坑过,仅此记录
此外还有os.mkdir(path),在创建path目录
os.rmdir(path),删除path目录等操作
因为目前用的还不多,也用不到太多,以后用到再多加练习。
下面说一个今天做的练习,我开始用错误的方法做了一个小时,最后才改对。
题目:编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
我的答案是:
def find_dir(string, path):
for str1 in os.listdir(path):
if os.path.isdir(os.path.join(path, str1)):
print(os.path.join(path, str1))
new_path = os.path.join(path, str1)
# pdb.set_trace()
find_dir(string, new_path)
else:
# print(str1+"不是一个目录")
if string in str1:
print(str1, end=' ')
find_dir("s", os.path.abspath("."))