请问这些代码有什么问题,为什么最后跑出来结果为空啊
import osdef search_video(start_dir):
os.chdir(start_dir)
content = []
for each_file in os.listdir(os.curdir):
type1 = os.path.splitext(each_file)
if type1 in [".avi", ".mp4", ".rmvb"]:
content.append(os.getcwd() + os.sep + each_file + os.linesep)
if os.path.isdir(each_file):
search_video(each_file)
os.chdir(os.pardir)
return content
program_dir = os.getcwd()
start_dir = input("请输入待查找的初始目录:")
vediolist = search_video(start_dir)
file = open(program_dir + os.sep + "vedioList.txt","w")
file.writelines(vediolist)
file.close()
https://fishc.com.cn/thread-181125-1-1.html
看看相同问题的帖子 疾风怪盗 发表于 2020-9-29 17:15
https://fishc.com.cn/thread-181125-1-1.html
看看相同问题的帖子
这个是我写的代码,和小甲鱼的那个有点区别,小甲鱼那个是可以正常运行的,有文件,文件也有内容,但是我这个的话就只能生成文件,文件里面没有内容 Zeus213 发表于 2020-9-29 17:26
这个是我写的代码,和小甲鱼的那个有点区别,小甲鱼那个是可以正常运行的,有文件,文件也有内容,但是我 ...
因为content = []放在函数里的原因吧
递归后,就相当于重置了
放外面就好了 你要和小甲鱼的不一样,就传两个参数,递归时把列表一起传进去
import os
def search_video(content,start_dir):
os.chdir(start_dir)
for each_file in os.listdir(os.curdir):
type1 = os.path.splitext(each_file)
if type1 in [".avi", ".mp4", ".rmvb",".ts"]:
content.append(os.getcwd() + os.sep + each_file + os.linesep)
if os.path.isdir(each_file):
search_video(content,each_file)
os.chdir(os.pardir)
return content
program_dir = os.getcwd()
content = []
#start_dir = input("请输入待查找的初始目录:")
start_dir = r'D:\python\test'
vediolist = search_video(content,start_dir)
print(vediolist)
file = open(program_dir + os.sep + "vedioList.txt","w")
file.writelines(vediolist)
file.close() 疾风怪盗 发表于 2020-9-29 17:39
你要和小甲鱼的不一样,就传两个参数,递归时把列表一起传进去
哦哦哦,感谢!!这下可以了
页:
[1]