鱼C论坛

 找回密码
 立即注册
查看: 2188|回复: 3

又是编码问题,真是头疼啊,急求大神!!!

[复制链接]
发表于 2016-10-8 19:53:22 | 显示全部楼层 |阅读模式

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

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

x
做了一个搜集全盘视频并返回列表的程序(貌似作业做过。。。),但是在运行时又出现了编码不能的情况,我还是把整个程序贴一下吧
  1. import os


  2. def search(pan,L):
  3.    
  4.     os.chdir(pan)

  5.     L1=os.listdir('.')
  6.     if 'System Volume Information' in L1:
  7.         L1.remove('System Volume Information')
  8.         

  9.     for each in L1:
  10.         extention=os.path.splitext(each)[1]
  11.         if extention in L:
  12.             M.append(os.getcwd() + os.sep + each + os.linesep)
  13.             
  14.                   
  15.         if os.path.isdir(each):
  16.             search(each,L)
  17.             os.chdir('..')

  18. pan=input('请输入开始搜索的磁盘:')

  19. L=['.mp4','.avi','.rmvb','mkv']
  20. M=[]

  21. search(pan,L)   


  22. for i in M:
  23.     print(i)


  24. with open('radio_list.txt','w') as f:
  25.     f.writelines(M)
复制代码


错误:
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\1111.py", line 26, in <module>
    f.writelines(vedio_list)
UnicodeEncodeError: 'gbk' codec can't encode character '\u30fb' in position 39: illegal multibyte sequence


同样我还是半懂不懂试了几个方法,在最后。 f.writelines(M).encode('gbk','ignore')   f.writelines(M,encoding='utf8') 类似这些,都没有用。

最后,如何优化成可以一次性搜索全盘或者几个盘呢,比如C E D F 而不用一次次输出,万分感谢各位的回答
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-8 21:07:37 | 显示全部楼层
  1. with open('radio_list.txt','w',encoding='utf8') as f:
  2.     f.writelines(M)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-9 14:20:08 | 显示全部楼层

非常感谢,思想还是太僵化了,网上都是在write的时候改,就没想到在open的时候gbk就无法编码了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-31 10:22:16 | 显示全部楼层
学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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