- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试编写代码来组织超过 40G 的音乐,我想按艺术家组织,到目前为止我已经能够获得艺术家信息,但我正在为每个艺术家创建一个目录并且将同一艺术家的歌曲放入同一目录,而不是为每首歌曲创建单独的目录。
import os #imports os functions
import eyed3 #imports eyed3 functions
root_folder = '/Users/ntoscano/desktop/mp3-organizer'
files = os.listdir(root_folder) #lists all files in specified directory
if not files[1].endswith('.mp3'):
pass #if the file does not end with ".mp3" it does not load it into eyed3
for file_name in files:
#if file_name.endswith('.mp3'): continue #if file ends with ".mp3" it continues onto the next line
abs_location = '%s/%s' % (root_folder, file_name)
song_info = eyed3.load(abs_location) #loads each file into eyed3 and assignes the return value to song_info
if song_info is None:
print 'Skippig %s' % abs_location
continue
os.mkdir(os.path.expanduser('~/Desktop/mp3-organizer/%s')) % song_info.tag.artist
print song_info
print song_info.tag.artist
这是我目前所拥有的,但是它坏了,第 19 行总是给我一个错误,
Nicolass-MacBook-Air:mp3-organizer ntoscano$ python eyeD3test.py
Skippig /Users/ntoscano/desktop/mp3-organizer/.DS_Store
Traceback (most recent call last):
File "eyeD3test.py", line 19, in <module>
os.mkdir(os.path.expanduser('~/Desktop/mp3-organizer/%s')) % song_info.tag.artist
TypeError: unsupported operand type(s) for %: 'NoneType' and 'unicode'
我是编码新手,所以我确定这是一个简单的错误,但我只是不明白如何获得以艺术家信息作为名称的目录。感谢任何帮助
最佳答案
问题只是错误位置的括号。而不是这个:
os.mkdir(os.path.expanduser('~/Desktop/mp3-organizer/%s')) % song_info.tag.artist
这样做:
os.mkdir(os.path.expanduser('~/Desktop/mp3-organizer/%s' % song_info.tag.artist))
如果将其分解成多个部分,则更容易看出:
expanded = os.path.expanduser('~/Desktop/mp3-organizer/%s')
dir = os.mkdir(expanded)
formatted = dir % song_info.tag.artist
因此,您正在创建一个名为 /Users/ntoscano/Desktop/mp3-organizer/%s
的目录,它返回 None
,然后您执行 None % song_info.tag.artist
,因此 %
不支持关于 NoneType
和 unicode
的错误。
在这种情况下,无论您在expanduser
之前还是之后进行格式化都没有关系,但您必须在mkdir
之前进行格式化。
作为旁注,尽管它是合法的,但使用单个值而不是元组进行 %
格式化通常不是一个好主意('~/Desktop/mp3-organizer/%s' % (song_info.tag.artist,)'
).使用现代 {}
格式通常是更好的主意('~/Desktop/mp3-organizer/{}'.format(song_info.tag.artist)
).使用 os.path
而不是字符串操作甚至更好,因此这些问题都不会首先出现。
此外,我注意到您在某些情况下使用手动展开的 root_folder
,但在其他情况下使用 expanduser
。您可能希望对此保持一致 — 否则,一旦您尝试在 ~
不是 /Users/ntoscano
的另一台机器上使用它,它就会崩溃。而且,即使 OS X 允许您在某些情况下弄错路径名大小写,您也应该尽可能纠正错误。
综合起来:
root_folder = os.path.expanduser('~/Desktop/mp3-organizer')
files = os.listdir(root_folder) #lists all files in specified directory
for file_name in files:
#if file_name.endswith('.mp3'): continue #if file ends with ".mp3" it continues onto the next line
abs_location = os.path.join(root_folder, file_name)
song_info = eyed3.load(abs_location) #loads each file into eyed3 and assignes the return value to song_info
if song_info is None:
print 'Skippig %s' % abs_location
continue
os.mkdir(os.path.join(root_folder, song_info.tag.artist))
print song_info
print song_info.tag.artist
关于python - 按艺术家组织歌曲| python ,眼睛3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131589/
你们中有人有如何从 iPod 媒体库中检索所有音乐专辑或艺术家的示例代码(或其链接)吗? 提前致谢! 最佳答案 使用 MPMediaQuery: MPMediaQuery *allAlbumsQuer
我对此进行了大量研究,但找不到任何解决该特定主题的内容。 我想要获取当前用户库中的所有艺术家,甚至只是特定播放列表中的所有艺术家,例如“加星标”播放列表。 当我尝试进入播放列表中的艺术家或轨道时,我得
我制作了一个连接到 radio 并使用 MediaPlayer 播放其音频的程序。我想打印艺术家、歌名……但我不知道怎么做。 我尝试使用 MediaStore.Audio.Media.ARTIST 执
我希望设置一种方法,可以将正常图形(深色线条、白色/透明背景)转换为伪倒置图形(浅色线条、黑色/透明背景)。我可以对图像进行后期处理,但直接反转的颜色看起来很糟糕,所以我想改为(尝试)创建从一组颜色到
我用 matplotlib 创建了一个 Line2D 对象数组,我想在各种绘图中使用它们。但是,在多个情节中使用相同的艺术家不起作用,因为我得到: RuntimeError: Can not put
与音乐应用程序非常相似,我想访问歌曲的名称(而不是文件的名称)或艺术家或专辑。例如,我想用手机上所有歌曲的名称填充一个 ListView 。 最佳答案 有两种方法,一种是从音乐文件本身读取元标记,另一
我正在 Android 中开发一个音乐应用程序,当检索歌曲的专辑、艺术家、流派名称时,我得到了一些未知名称。 对于专辑,未知的专辑名称显示为“音乐”。对于艺术家,未知艺术家名称显示为“”对于流派,未知
我一直在尝试使用 php5-ffmpeg 扩展来获取远程 mp3(和其他格式)元数据。 尽管我总是缺少标题、作者、评论、艺术家详细信息,但它正在工作。 我一直在网上搜索答案,但没有找到任何解决方案。
mp3 ID Title Description 标签 ID Title 艺术家 ID Title 艺术家关系 mp3ID //call to mp3s.ID artistID // call to
我正在尝试通过项目上的按钮链接到艺术家的 iTunes“页面”。我试过使用他们的 safari 页面,例如“http://itunes.apple.com/au/artist/blink-182/id
我有一个带有艺术家和标题的动态音频播放器。它工作正常,但在移动 View 中,艺术家和标题突出了我的 div。 这是一张图片: 我希望艺术家 - 标题(当用户的屏幕变长时)仅在下方显示一行。 我已经通
我用一组像这样的图像制作了一个动画(10张快照): import numpy as np import matplotlib.pyplot as plt from matplotlib.patches
我正在尝试使用以下代码获取我在 Java 项目中使用的 .wav 文件的属性。但是,当我运行此代码时,方法 format.getProperty("title")、format.getProperty
我想知道我是否可以获取 mp3 文件信息,如专辑名称、艺术家、存储在 mp3 文件中的图像等等?如果有办法做到这一点,请帮忙。顺便说一句:我创建了一个名为 Entagged 的 Java 库,但我
我需要它: https://github.com/danielamitay/DAAppsViewController 代码是: DAAppsViewController *appsViewContro
我正在开发一个使用 Vue 构建的供个人使用的 PWA,其功能基本上与 YouTube Music 相同,而无需每月付费。 我设置了一个带有 REST API 的服务器,该服务器可以根据查询搜索 Yo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
我想为 Windows Phone 7 创建一个简单的音频播放器。 如何获得歌曲、艺术家、专辑、流派和播放我选择的项目的方法的列表?类似于原生 wp7 应用程序“音乐+视频”中的内容 第二个问题: 我
以前可以使用 MediaLibrary 访问 Albums、Genres 等 using(MediaLibrary library = new MediaLibrary()) { SongCo
我在配置 URL 以将特定艺术家音乐的 RSS 提要加载到我的应用程序时遇到问题。我正在使用 dev.apple 上可用的 itunes XMLPerformace 测试 Xcode 项目。我只是想改
我是一名优秀的程序员,十分优秀!