详解pygame加载中文名mp3文件出现error解决方法

#pygame播放mp3文件:

     这里笔者只介绍一种好理解的方法

详解pygame加载中文名mp3文件出现error解决方法

打开官方文档,笔者发现,像是发现了新大陆一样,这家伙太强大了,而现在我只能用它来播放我的mp3.好吧,剩下的等待以后来发掘吧.干什么讲什么,来个播放mp3 test代码:

import pygamepath = 'Pam Pam - Noel Toto.mp3'pygame.mixer.init()pygame.mixer.music.load(path)pygame.mixer.music.play()

登录后复制

其中,path表示待播放mp3文件的路径及文件名.这里笔者用的是源生的idle,可以正常播放此mp3.

#发现Bug:

  接着就是笔者在下午做完音乐列表测试播放的时候遇到的问题,即当待加载mp3文件名包含中文时,出现的pygame.error.

详解pygame加载中文名mp3文件出现error解决方法

这就尴尬了,通过输出的path,发现中文没有乱码,笔者google了下,发现中文的社区有人说python应该尽量避免中文.也有人说可以改一下编码.但笔者试了,貌似不可以.英文社区类似Stack Overflow,均没有关于这个问题的解决方法.毕竟人家老外不太关心”我们自己的事”.于是,爬了半天,没找到有效的解决办法.好吧,这是硬伤.当然,大牛们应该是可以通过更改pygame中源代码解决的,这不是我能做的事^_^.

#debug:

  笔者来了个好玩的方法,应该还有更好的实现方法,我先来厚着脸皮说一下我的debug思路:

  首先,当遇到中文名mp3是出现pygame.error 这时,程序出现严重错误.很自然想到try语句.这样,当遇到中文名mp3时出现error,自动转到except内容.笔者想到复制待播放文件到指定目录,并重命名为非中文.最后加载此非中文mp3文件,从而绕过了pygame中文识别的硬伤.下面上代码:

import pygameimport shutilpath = '一走过的日子-刘德华.mp3'pygame.mixer.init()try:    pygame.mixer.music.load(path)    pygame.mixer.music.play()except:    print('something is wrong~but i see you.')    shutil.copyfile(path,'play.mp3')    pygame.mixer.music.load('play.mp3')    pygame.mixer.music.play()

登录后复制

#运行效果:

详解pygame加载中文名mp3文件出现error解决方法

此时,程序已经可以正常播放中文名mp3文件.其实此问题并没有从本质上解决pygame中文识别问题,而是绕过了这个问题.这个方法也是有个弊端,就是会产生play.mp3这个文件,在做项目的时候可以放在缓存目录里.

  至此,关于解决今天下午遇到的pygame中文识别问题叙述完毕,如有更好的方法,望请评论告知,谢谢.

刚才看了下python3.3.3 pygame目录,文件mixer.pyd科普了一下.pyd后缀,发现和dll一样是二进制文件,更改内容需要反编译.也就是说python并不是完全开源的.

以上就是详解pygame加载中文名mp3文件出现error解决方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2274375.html

(0)
上一篇 2025年2月27日 13:55:51
下一篇 2025年2月23日 09:48:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 使用Python对Access读写操作方法详解

    学习Python的过程中,我们会遇到Access的读写问题,这时我们可以利用win32.client模块的COM组件访问功能,通过ADODB操作Access的文件。 1、导入模块 import win32com.client 登录后复制 2…

    编程技术 2025年2月27日
    200
  • 详解使用Python对Excel进行读写操作方法

    学习Python的过程中,我们会遇到Excel的读写问题。这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据。下面我们介绍如何实现使用Python对Excel进行读写操作。 Python版:3.…

    编程技术 2025年2月27日
    200
  • 详解用python的BeautifulSoup分析html方法

    1) 搜索tag: find(tagname)        # 直接搜索名为tagname的tag 如:find(‘head’)find(list)           # 搜索在list中的tag,如: find…

    编程技术 2025年2月27日
    200
  • python之面向对象、基本I/O操作(一)

    一、i/o 操作: open(name[,mode]) 等价于file(name[,mode]) 模式说明:r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件…

    2025年2月27日
    200
  • python学习之面向对象编程特性(二)

    面向对象程序设计中的术语对象(object)基本上可以看做数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。传统意义上的“程序=数据结构+算法”被封装”掩盖“并简化为“程序=对象+消息”。对象是类的实例,类的抽象则需要经过封…

    2025年2月27日
    200
  • python的内建函数详解

               python内建函数    最近一直在学习python,在网上看到和学习了关于python内建函数的一些分类和个内建函数的作用,下面是一些关于python内建函数的罗列,初学者的了解,分类可能不准确,一起交流。一、数学…

    2025年2月27日
    200
  • 简单介绍Python中%r和%s

    %r用rper()方法处理对象 %s用str()方法处理对象 有些情况下,两者处理的结果是一样的,比如说处理int型对象。 例一: print “I am %d years old.” % 22  print “I am %s years …

    编程技术 2025年2月27日
    200
  • python爬取百度美女图片

    通过python批量自动化下载百度美女图片 效果是这样的 效果展示 我的代码 import requestsimport re 登录后复制 翻页查看图片模式 #获取每页图片的访问链接def get_page(): urls=[‘http:/…

    2025年2月27日
    200
  • python爬虫的实践

    一些吐槽 第一次提笔真正的开始写一篇技术博客,以前总是认为自己的技术不好,达不到写博客的要求,然后不敢动笔写,后来我发现,技术这条路是无止境的,你并不能学会所有的东西,所有的人都是在互相交流中成长的,所以今天决定拿出一些干货来分享给大家。 …

    编程技术 2025年2月27日
    200
  • python爬虫[一] 批量下载妹子图

    煎蛋网上的妹子图专题有着质量很高的美女图片,今天分享一下用 python 批量下载这些妹子图的方法。 需要了解的知识和工具: #1 需要了解 python 的基本语法,对这篇文章来说,你只要知道如何操作 list ,for……in……,如何…

    2025年2月27日 编程技术
    200

发表回复

登录后才能评论