鱼C论坛

 找回密码
 立即注册
查看: 1764|回复: 2

[已解决][python]求助,小甲鱼零基础学习python第三十课的课后习题第三题

[复制链接]
发表于 2020-10-5 19:11:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的程序如下
import os
import os.path

search_dir = input('请输入待查找的初始目录:')
target_ext = ['.mp4','.rmvb','.avi']
file_name = search_dir + '\\' + 'video_list.txt'
file = open(file_name,'w')
#print(type(file))

os.chdir(search_dir)
for root,dirs,file in os.walk(os.getcwd()):
    for each in file:
        (name,ext) = os.path.splitext(each)
        if ext in target_ext:
            #print(root + '\\' + each)
            #print(type(root + '\\' + each))
            file.write(root + '\\' + each)

file.close()


程序运行,可以成功输出目的文件的地址,但是无法把文件的路径保存在新的TXT文件里面
报错是AttributeError: 'list' object has no attribute 'write'
这是怎么回事,我输出了file的文件类型是文件,root + '\\' + each 也是字符串类型,请问大佬们这是哪里出了问题呢?
最佳答案
2020-10-6 10:31:49
通过报错提示,可以看出file是列表,在看os.walk()返回的三个参数root是字符串,dirs是列表,file是列表,所以列表没有write方法,也没有close方法!其实这个很符合逻辑,一个路径下可能存在多个文件夹,所以用列表表示!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-6 10:31:49 | 显示全部楼层    本楼为最佳答案   
通过报错提示,可以看出file是列表,在看os.walk()返回的三个参数root是字符串,dirs是列表,file是列表,所以列表没有write方法,也没有close方法!其实这个很符合逻辑,一个路径下可能存在多个文件夹,所以用列表表示!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-8 21:04:41 | 显示全部楼层
弱弱的佳佳 发表于 2020-10-6 10:31
通过报错提示,可以看出file是列表,在看os.walk()返回的三个参数root是字符串,dirs是列表,file是列表, ...

谢谢您,我懂了,我打开文件的那个‘file’和后面‘os.walk’中的那个‘file’变量名重复了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 10:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表