muyi1 发表于 2020-10-5 19:11:02

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

我的程序如下
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方法!其实这个很符合逻辑,一个路径下可能存在多个文件夹,所以用列表表示!

muyi1 发表于 2020-10-8 21:04:41

弱弱的佳佳 发表于 2020-10-6 10:31
通过报错提示,可以看出file是列表,在看os.walk()返回的三个参数root是字符串,dirs是列表,file是列表, ...

谢谢您,我懂了,我打开文件的那个‘file’和后面‘os.walk’中的那个‘file’变量名重复了
页: [1]
查看完整版本: [python]求助,小甲鱼零基础学习python第三十课的课后习题第三题