鱼C论坛

 找回密码
 立即注册
查看: 2398|回复: 4

[已解决]关于把列表中的内容 写入.txt文档中的问题

[复制链接]
发表于 2019-11-20 15:21:10 | 显示全部楼层 |阅读模式

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

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

x
import os
name1 = str(input('请输入目录'))
list1 = list(os.walk(name1))
list2 = []
lentgh1 =len(list1)
for i in range(lentgh1):
    lentgh2 = len(list1[i])
    for j in range(1,lentgh2):
        for k in list1[i][j]:
            (x,y)=os.path.splitext(k)
            if y == '.mp4' or y == '.avi':
                name =name1 +'\ '+k + '\n'
                list2.append(name)
f1 = open('mp4.txt','w')
f1.writelines(list2)
f1.close()

如题
我运行完就显示
Traceback (most recent call last):
  File "D:/python/jichu/查找文件格式.py", line 15, in <module>
    f1.writelines(list2)
UnicodeEncodeError: 'gbk' codec can't encode character '\xe2' in position 30: illegal multibyte sequence

只有列表中的第一个字符串被写入
最佳答案
2019-11-21 18:40:34
试试这样:
import os
name1 = str(input('请输入目录'))
list1 = list(os.walk(name1))
list2 = []
lentgh1 =len(list1)
for i in range(lentgh1):
    lentgh2 = len(list1[i])
    for j in range(1,lentgh2):
        for k in list1[i][j]:
            (x,y)=os.path.splitext(k)
            if y == '.mp4' or y == '.avi':
                name =name1 +'\ '+k + '\n'
                list2.append(name)
f1 = open('mp4.txt','w', encoding='utf-8')
f1.writelines(list2)
f1.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-20 15:23:10 | 显示全部楼层
是不是以为列表太大了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-20 19:40:13 | 显示全部楼层
可能是路径或文件名有 Python 识别不了的字符,我试了试你的代码没问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-21 14:51:16 | 显示全部楼层
zltzlt 发表于 2019-11-20 19:40
可能是路径或文件名有 Python 识别不了的字符,我试了试你的代码没问题。

['D:\\\\迅雷下载\\ 无主之作.Werk.ohne.Autor.2018.BD1080P.X264.AAC.German.CHS.mp4', "D:\\\\迅雷下载\\ 杀人秘密.La.mort.dans.l'ame.2018.HD720P.X264.AAC.French.CHT.mp4", 'D:\\\\迅雷下载\\ 此房是我造.The.House.That.Jack.Built.2018.1080p.WEB-DL.X264.AAC.CHS-ENG.mp4', 'D:\\\\迅雷下载\\ 英国佬来了BD中英双字[飘花www.piaohua.com].mp4']


这个是要写入的列表  里面有什么问题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-21 18:40:34 | 显示全部楼层    本楼为最佳答案   
试试这样:
import os
name1 = str(input('请输入目录'))
list1 = list(os.walk(name1))
list2 = []
lentgh1 =len(list1)
for i in range(lentgh1):
    lentgh2 = len(list1[i])
    for j in range(1,lentgh2):
        for k in list1[i][j]:
            (x,y)=os.path.splitext(k)
            if y == '.mp4' or y == '.avi':
                name =name1 +'\ '+k + '\n'
                list2.append(name)
f1 = open('mp4.txt','w', encoding='utf-8')
f1.writelines(list2)
f1.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 18:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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