Ootme 发表于 2019-11-20 15:21:10

关于把列表中的内容 写入.txt文档中的问题

import os
name1 = str(input('请输入目录'))
list1 = list(os.walk(name1))
list2 = []
lentgh1 =len(list1)
for i in range(lentgh1):
    lentgh2 = len(list1)
    for j in range(1,lentgh2):
      for k in list1:
            (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

只有列表中的第一个字符串被写入

Ootme 发表于 2019-11-20 15:23:10

是不是以为列表太大了?

zltzlt 发表于 2019-11-20 19:40:13

可能是路径或文件名有 Python 识别不了的字符,我试了试你的代码没问题。

Ootme 发表于 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']


这个是要写入的列表里面有什么问题吗

zltzlt 发表于 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)
    for j in range(1,lentgh2):
      for k in list1:
            (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()
页: [1]
查看完整版本: 关于把列表中的内容 写入.txt文档中的问题