iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >pygame加载中文名mp3文件出现error
  • 901
分享到

pygame加载中文名mp3文件出现error

中文名加载文件 2022-06-04 18:06:27 901人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

前言:  今天刚刚做了个音乐列表,但笔者发现在指定目录mp3文件名为中文时,便出现pygame.error,不能正确加载指定mp3文件.写好的代码不想再改了,来个小测试吧 pygame播放mp3文件: 这里

前言: 

今天刚刚做了个音乐列表,但笔者发现在指定目录mp3文件名为中文时,便出现pygame.error,不能正确加载指定mp3文件.写好的代码不想再改了,来个小测试

pygame播放mp3文件:

这里笔者只介绍一种好理解的方法,具体请查看pygame.mixer.music官方文档

查看图片

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


import pygame
path = '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.

查看图片

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

debug:

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

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


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

运行效果:

查看图片

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

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

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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程网!

--结束END--

本文标题: pygame加载中文名mp3文件出现error

本文链接: https://www.lsjlt.com/news/13473.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue中怎么添加mp3音频文件
    这期内容当中小编将会给大家带来有关vue中怎么添加mp3音频文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。方法一、将音频文件放置在static目录中,然后进行调用,如...
    99+
    2024-04-02
  • Java下载文件,中文文件名乱码问题解决(文件名包含很多%)
    一般情况下,大家都是这样: fileName = URLEncoder.encode(fileName, "UTF-8");response.reset();response.setHeader("Content-disposition",...
    99+
    2023-09-02
    java 前端
  • response文件流输出文件名中文不显示的解决
    目录文件流输出文件名中文不显示使用如下方法没有解决解决方法response下载时中文文件名乱码文件流输出文件名中文不显示 response返回文件流 用response.setHea...
    99+
    2024-04-02
  • java文件下载如何设置中文名称
    这篇文章主要为大家展示了“java文件下载如何设置中文名称”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java文件下载如何设置中文名称”这篇文章吧。实例如下:protected vo...
    99+
    2023-05-30
    java
  • Java下载excel文件名中文乱码解决
    我是一名充满激情的程序员,💻希望和大家一起学习进步!我热爱编程,对技术充满好奇心和求知欲! 🗣️无论你是新手还是老手,都能从我的博客中获得有价值的内容! Ὠ...
    99+
    2023-09-10
    java excel python spring
  • vue中怎么下载excel流文件及设置下载文件名
    这篇文章给大家分享的是有关vue中怎么下载excel流文件及设置下载文件名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述导出excel需求,当点击下载模板或下载反馈结果,axios发起后端接口请求,返回的数据...
    99+
    2023-06-15
  • response文件流输出文件名中文不显示怎么办
    这篇文章主要介绍“response文件流输出文件名中文不显示怎么办”,在日常操作中,相信很多人在response文件流输出文件名中文不显示怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”response文...
    99+
    2023-06-29
  • vue中如何下载excel流文件及设置下载文件名
    目录概述1、通过 url 下载2、通过 a 标签 download 属性结合 blob 构造函数下载3、通过 js-file-download 插件概述 导出excel需求,当点击下...
    99+
    2024-04-02
  • SpringBoot实现加载yml文件中字典数据
    将字典数据,配置在 yml 文件中,通过加载yml将数据加载到 Map中 Spring Boot 中 yml 配置、引用其它 yml 中的配置。# 在配置文件目录(如:resourc...
    99+
    2023-05-16
    SpringBoot加载yml文件字典数据 SpringBoot yml字典数据 SpringBoot yml数据 SpringBoot yml
  • Python怎么实现从文件中加载数据
    这篇文章主要介绍“Python怎么实现从文件中加载数据”,在日常操作中,相信很多人在Python怎么实现从文件中加载数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现从文件中加载数据”的疑...
    99+
    2023-06-30
  • 如何在ASP文件容器load中实现文件加载和管理?
    ASP文件容器load是一种常见的文件加载和管理方式,它可以帮助我们更好地管理和使用文件资源。在本文中,我们将深入探讨如何在ASP文件容器load中实现文件加载和管理,并提供一些示例代码。 一、什么是ASP文件容器load? ASP文件容器...
    99+
    2023-06-01
    文件 容器 load
  • ubuntu系统下播放mp3出现中文乱码怎么解决
    这篇文章主要讲解了“ubuntu系统下播放mp3出现中文乱码怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ubuntu系统下播放mp3出现中文乱码怎么解决”吧!1,mp3播放安装gs...
    99+
    2023-06-13
  • mysql中加载sql文件的方法
    在mysql中加载sql文件的方法首先,在命令行中,启动MySQL服务;service mysql start MySQL服务启动后,输入用户名和密码,登录mysql数据库;mysql -u root -p登录到MySQL数据库后,查看数据...
    99+
    2024-04-02
  • JVM中Class文件的加载过程
    这篇文章主要讲解了“JVM中Class文件的加载过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JVM中Class文件的加载过程”吧!Class文件加载过程JVM加载Class文件主要分3...
    99+
    2023-06-16
  • 在文件中保存和加载 MemoryStream
    要在文件中保存和加载MemoryStream,您可以使用FileStream类。以下是一个示例代码,演示如何保存和加载MemoryS...
    99+
    2023-09-26
    文件
  • Hibernate中怎么加载配置文件
    本篇文章给大家分享的是有关Hibernate中怎么加载配置文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在向大家详细介绍Hibernate加载配置文件之前,首先让大家了解下...
    99+
    2023-06-17
  • 如何在webpack中加载css文件
    这篇文章将为大家详细讲解有关如何在webpack中加载css文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。webpack加载css文件及其配置当我们写了几个css文件之后如果想要引用到h...
    99+
    2023-06-08
  • 如何实现SpringBoot加载配置文件
    这篇文章主要为大家展示了“如何实现SpringBoot加载配置文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现SpringBoot加载配置文件”这篇文章吧。一、简介在实际的项目开发过程...
    99+
    2023-06-29
  • mybatis xml文件热加载怎么实现
    这篇文章主要介绍了mybatis xml文件热加载怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mybatis xml文件热加载怎么实现文章都会有所收获,下面我们一起来看看吧。一、x...
    99+
    2023-07-05
  • Tensorflow 如何从checkpoint文件中加载变量名和变量值
    假设你已经经过上千次的迭代,并且得到了以下模型: 则从这些checkpoint文件中加载变量名和变量值代码如下: model_dir = './ckpt-182802' imp...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作