金荣宇 发表于 2020-8-12 20:57:56

课后题求指导

import os
def findvideo(path1):
    a = os.listdir(path1)
    for c in a:
      name = os.path.splitext(c)
      if name =='.avi'or name =='.mp4' or name=='rmvb':
            videolist.append(path1+c)
      if os.path.isdir(c):
            findvideo(c)
            os.chdir(os.pardir)
path1 = input('请输入待查找的初始目录')
videolist =[]
findvideo(path1)
print(videolist)

以上是我的代码。我没有创建文件我是直接打印的 列表。如果当前文件夹有视频格式的话倒是可以实现,但是没法像答案一样可以对子文件夹进行搜索。还请大佬们指教。

zltzlt 发表于 2020-8-12 20:59:44

c 不是完整的路径名import os
def findvideo(path1):
    a = os.listdir(path1)
    for c in a:
      name = os.path.splitext(c)
      if name =='.avi'or name =='.mp4' or name=='rmvb':
            videolist.append(path1+c)
      if os.path.isdir(path1 + '\\' + c):
            findvideo(path1 + '\\' + c)
            os.chdir(os.pardir)
path1 = input('请输入待查找的初始目录')
videolist =[]
findvideo(path1)
print(videolist)

金荣宇 发表于 2020-8-12 21:03:34

zltzlt 发表于 2020-8-12 20:59
c 不是完整的路径名

那请问答案里的 each_file 为什么就是完整的路径名呢。和我的c区别在哪里呢{:10_254:}

zltzlt 发表于 2020-8-12 21:04:25

金荣宇 发表于 2020-8-12 21:03
那请问答案里的 each_file 为什么就是完整的路径名呢。和我的c区别在哪里呢

把答案发一下看看?

金荣宇 发表于 2020-8-12 21:05:57

zltzlt 发表于 2020-8-12 21:04
把答案发一下看看?

答案就是一楼的第二张图片里

zltzlt 发表于 2020-8-12 21:08:16

金荣宇 发表于 2020-8-12 21:05
答案就是一楼的第二张图片里

因为答案一开始把工作路径切换到了 start_dir 呀,这样用相对路径就行了

金荣宇 发表于 2020-8-12 21:09:55

zltzlt 发表于 2020-8-12 21:08
因为答案一开始把工作路径切换到了 start_dir 呀,这样用相对路径就行了

哦哦 好的 ! 谢谢指教。
页: [1]
查看完整版本: 课后题求指导