|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 panda652 于 2017-8-13 10:30 编辑
import os
def iden(path):
list_file = os.listdir(path)
for each in list_file:
if os.path.isdir(path + "\\"+ each) == 1:
iden(path + "\\"+ each)
else:
text = os.path.splitext(each)[1]
if text in (".mp4",".avi",".rmvb"):
txt.write(path + ":" + each + "\n")
else:
continue
txt.close()
path = input("pliease input the path you want:")
txt = open(path + "\\videolist.txt","a")
iden(path)
我的代码如上,在小的测试文件夹中可以实现没问题,为什么在大的范围中就报错了呢?也不明白其中的原因,望各位大大可以指导!谢谢~
问题没有描述清楚抱歉啊-,-。。 如上面的程序截图,第一次的输入地址可以正常运行,但是我改一个地址就不可以了。。。这是为什么呢。。。
但是用小伙伴们的标准答案在第二个地址也是可以正常运行的
本帖最后由 shinemic 于 2017-8-13 10:38 编辑
问题在多个文件夹的时候就可以复现。原因是过早的关闭了文件流,把 txt.close() 放在外面就行:
- # -*- coding: utf-8 -*-
- import os
- def iden(path):
- list_file = os.listdir(path)
- for each in list_file:
- if os.path.isdir(path + "\"+ each) == 1:
- iden(path + "\"+ each)
- else:
- text = os.path.splitext(each)[1]
- if text in (".mp4",".avi",".rmvb"):
- txt.write(path + ":" + each + "\n")
- else:
- continue
- path = input("please input the path you want:")
- txt = open(path + "\\videolist.txt","w")
- iden(path)
- txt.close()
复制代码
|
-
|