鱼C论坛

 找回密码
 立即注册
查看: 2172|回复: 12

[已解决]新手第二问,关于文件课后题的

[复制链接]
发表于 2016-3-10 21:41:27 | 显示全部楼层 |阅读模式

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

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

x
  1. import os
  2. file_path = str(input('请输入待查找的初始目录:'))
  3. #查找结尾为mp3.rmvb.avi的格式
  4. def check(file_path):
  5.     tempt = os.listdir(file_path)

  6.     for each in tempt:
  7.       #当遇到文件时,匹配
  8.         eachpath = file_path + '/' + each
  9.         if os.path.isfile(eachpath):
  10.             #将文件分为文件名和扩展名
  11.             tempt_file = os.path.splitext(eachpath)
  12.             if tempt_file[1] in ['.mp4','.mkv','.avi','.rmvb']:
  13.                 print(eachpath)
  14.                 tempt_file_name.append(eachpath+os.linesep)
  15.                
  16.             
  17.     #当遇到文件夹时,进入文件夹
  18.         elif os.path.isdir(eachpath):
  19.             
  20.             check(eachpath)
  21.     #return tempt_file_name
  22. #将查找后的文件地址放入新的文件中
  23. tempt_file_name = []
  24. program = os.getcwd()
  25. check(file_path)
  26. f = open('E:/python/vedioList1.txt','w',encoding='utf-8')
  27. f.writelines(tempt_file_name)
复制代码

为什么这个程序查找有的可以打印出来,存不到文件中去
最佳答案
2016-3-10 21:56:37
没有f.close()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-10 21:56:37 | 显示全部楼层    本楼为最佳答案   
没有f.close()

评分

参与人数 1鱼币 +3 收起 理由
沉默中学习 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 22:06:23 | 显示全部楼层

哦,好的,谢谢。
还有一个问题是,如果f = open('E:/python/vedioList1.txt','w',encoding='utf-8')将encoding变为这样存出来的使乱码,如果不加,再搜索含有中文路径时会报下面的错,能问一下有什么解决办法吗
Traceback (most recent call last)
  File "E:\python\我的练习\匹配音频文件并存放地址.py", line 28, in <module>
    f.writelines(tempt_file_name)
UnicodeEncodeError: 'gbk' codec can't encode character '\ud0dc' in position 13: illegal multibyte sequence
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 22:07:11 | 显示全部楼层


哦,好的,谢谢。
还有一个问题是,如果f = open('E:/python/vedioList1.txt','w',encoding='utf-8')将encoding变为这样存出来的文件是乱码,如果不加,在搜索含有中文路径时会报下面的错,能问一下有什么解决办法吗
Traceback (most recent call last)
  File "E:\python\我的练习\匹配音频文件并存放地址.py", line 28, in <module>
    f.writelines(tempt_file_name)
UnicodeEncodeError: 'gbk' codec can't encode character '\ud0dc' in position 13: illegal multibyte sequence
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-10 22:45:20 | 显示全部楼层
沉默中学习 发表于 2016-3-10 22:06
哦,好的,谢谢。
还有一个问题是,如果f = open('E:/python/vedioList1.txt','w',encoding='utf-8')将e ...

我按你的程序试了,没有发现问题。你的出错信息是没加utf-8的,加上 的具体是什么错误?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-10 23:11:07 | 显示全部楼层
冬雪雪冬 发表于 2016-3-10 22:45
我按你的程序试了,没有发现问题。你的出错信息是没加utf-8的,加上 的具体是什么错误?

加上后就是存在文件里面的使乱码的
F:/鐢佃鍓?澶槼鐨勫悗瑁?澶槼鐨勫悗瑁?绗?3闆?mp4

F:/鐢佃鍓?澶槼鐨勫悗瑁?韮滌枒鞚?頉勳槇.E01.160224.HDTV.H264.720p-WITH.mp4

F:/鐢佃鍓?澶槼鐨勫悗瑁?韮滌枒鞚?頉勳槇.E02.160225.HDTV.H264.720p-WITH.mp4

F:/鐢佃鍓?澶槼鐨勫悗瑁?韮滌枒鞚?頉勳槇.E04.160303.HDTV.H264.1080p-WITH.mp4

F:/鐢佃鍓?鏃犱汉鐢熻繕/And.Then.There.Were.None.S01.1080p.HDTV.x264-FaiLED/And.Then.There.Were.None.S01E01.1080p.HDTV.x264-FaiLED.mkv

F:/鐢佃鍓?鏃犱汉鐢熻繕/And.Then.There.Were.None.S01.1080p.HDTV.x264-FaiLED/And.Then.There.Were.None.S01E02.1080p.HDTV.x264-FaiLED.mkv

F:/鐢佃鍓?鏃犱汉鐢熻繕/And.Then.There.Were.None.S01.1080p.HDTV.x264-FaiLED/And.Then.There.Were.None.S01E03.1080p.HDTV.x264-FaiLED.mkv

F:/鐢佃鍓?缇庡浗鎭愭
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-10 23:15:15 | 显示全部楼层
沉默中学习 发表于 2016-3-10 23:11
加上后就是存在文件里面的使乱码的
F:/鐢佃鍓?澶槼鐨勫悗瑁?澶槼鐨勫悗瑁?绗?3闆?mp4

是print出乱码,还是生成文件是乱码?
如果不加encoding='utf-8',print是否乱码?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-11 14:48:41 | 显示全部楼层
冬雪雪冬 发表于 2016-3-10 23:15
是print出乱码,还是生成文件是乱码?
如果不加encoding='utf-8',print是否乱码?

print不乱码,只是生成的文件乱码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-11 15:03:39 | 显示全部楼层
沉默中学习 发表于 2016-3-11 14:48
print不乱码,只是生成的文件乱码

你要什么程序打开txt文件?你的操作系统是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-11 15:03:47 | 显示全部楼层
沉默中学习 发表于 2016-3-11 14:48
print不乱码,只是生成的文件乱码

你用什么程序打开txt文件?你的操作系统是什么?

评分

参与人数 1鱼币 +5 收起 理由
沉默中学习 + 5 十分感谢

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-11 15:05:18 | 显示全部楼层
冬雪雪冬 发表于 2016-3-11 15:03
你用什么程序打开txt文件?你的操作系统是什么?

有道记事本
Windows10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-11 15:09:14 | 显示全部楼层

好吧,我试了一下用记事本打开就不乱码了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-11 15:30:34 | 显示全部楼层
沉默中学习 发表于 2016-3-11 15:09
好吧,我试了一下用记事本打开就不乱码了

看来是有道的问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-20 02:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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