马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import os
def findvideo(file_street):
file_type = []
f = open('E:\\今朝落庭霰\\vedioList1.txt','w') #按照题干要求,创立一个文本文档,来存放视频文件的路径
os.chdir(file_street)
all_files = os.listdir(os.curdir) #罗列该目录下的所有文件
for each_file in all_files:
file_type.append(os.path.splitext(each_file)[1]) #分离该路径下的文件名和拓展名
for each in file_type:
if each in ['.mp4','rmvb','avi']: #找到的视频格式的文件,我就把它们写入创建的文本文档(vedioList1.txt)中
f.writelines(os.getcwd() + os.sep + each_file +os.linesep)
f.close()
file_street = input('请输入待查找的初始目录:')
findvideo(file_street)
以上是我的代码,我的问题集中在两点:(希望路过的大可以帮我解决一下第二点)
1.如果我输入的file_street中仍有文件夹,我的代码是没办法继续去搜索子文件夹里面的文件的(小甲鱼老湿调用了递归)
2.我自己的代码,去搜索file_street下的视频文件,可以得到一个txt文档,但是
如图,左边为用小甲鱼老湿的代码得到的,右边为我自己得到的。问题就在于比如第一个视频A.mp4在文本文档中路径名出现了一次,但第二个视频B.mp4在文档中就出现了2次,以此类推。
我没看出来,自己的代码到底是哪里出了问题。希望有时间的各位可以抽空看一下我的代码,谢谢辽
本帖最后由 Twilight6 于 2020-7-21 15:21 编辑
你用 append 加入列表了,导致你后面切割越多的文件,列表中元素越多,把路径写入文件次数也就越多了
而且你的 rmvb 和 avi 忘记加上 . 了
import os
def findvideo(file_street):
f = open('ttt.txt', 'w') # 按照题干要求,创立一个文本文档,来存放视频文件的路径
os.chdir(file_street)
all_files = os.listdir(os.curdir) # 罗列该目录下的所有文件
for each_file in all_files:
each = os.path.splitext(each_file)[1]
if each in ['.mp4', '.rmvb', '.avi']: # 找到的视频格式的文件,我就把它们写入创建的文本文档(vedioList1.txt)中
f.writelines(os.getcwd() + os.sep + each_file + os.linesep)
f.close()
file_street = input('请输入待查找的初始目录:')
findvideo(file_street)
|