python-3.x - 当分隔符不存在时继续并写入内容
问题描述
我有一个要打印的 mp3 文件列表:艺术家,为以下作品命名,但是,如果遇到没有“ - ”分隔符的文件,它当然会停止,我怎样才能让它继续,只是在艺术家中打印文件名中的内容是什么?
for mp3file in glob.glob("**/*.mp3", recursive = True):
path, filename = os.path.split(mp3file)
NoExtension = os.path.splitext(filename)[0]
print('Name: '+NoExtension)
splitFilename = NoExtension.split(' - ', 1)
print('Artist: '+splitFilename[0]+'\n')
print('Title: '+splitFilename[1])
输出
Name: CamelPhat - Both [Club Remix] [Clean, Music-In, Music-Out, Mashup Redrum]
Artist: CamelPhat
Title: Both [Club Remix] [Clean, Music-In, Music-Out, Mashup Redrum]
Name: Bob Marley - Is This Love (Montmartre - Remix) [Peak Hour Redrum] [Mashup] [Clean, Beat-In, Beat-Out, Mashup]
Artist: Bob Marley
Title: Is This Love (Montmartre - Remix) [Peak Hour Redrum] [Mashup] [Clean, Beat-In, Beat-Out, Mashup]
Name: Molly (Dj Nasa Secret Bootleg)
Artist: Molly (Dj Nasa Secret Bootleg)
Traceback (most recent call last):
File "G:\Scripts\IDremoveAndReplace.py", line 20, in <module>
print('Title: '+splitFilename[1])
IndexError: list index out of range
解决方案
您可以将您的代码放在 try - except 块中并让异常打印您想要的内容
例如
for mp3file in glob.glob("**/*.mp3", recursive = True):
try:
path, filename = os.path.split(mp3file)
NoExtension = os.path.splitext(filename)[0]
print('Name: '+NoExtension)
splitFilename = NoExtension.split(' - ', 1)
print('Artist: '+splitFilename[0]+'\n')
print('Title: '+splitFilename[1])
except IndexError as e:
print(e)
#Some other logic here
print('Cannot find title')
推荐阅读
- javascript - 如何在并行模式下控制测试分组
- c++ - 当我包含一个标准库时,CMake 会创建巨大的二进制文件
- docker - Docker 上 Kibana 的 NginX 反向代理
- visual-studio - VC++ 项目 64 位迁移问题:链接器错误
- javascript - 显示正确表单 PHP 公司用户/私人用户的问题
- python - /api/login 'user' 处的 KeyError
- reactjs - Mobx React - CreateViewModel - 错误 - 对象不是函数
- mysql - 使用多个连接表对 MySQL 查询进行排序
- powershell - 从 PowerShell 中的 New-WebServiceProxy 捕获错误
- graphql - GatsbyJS 和 Netlfiy 字符串与降价中的数字