尝试使用mutagen

时间:2016-04-13 17:05:55

标签: django

我试图在我的视图中获取mp3文件的长度:

from mutagen.mp3 import MP3
def Upload(request):
    data = {}
    data['modal'] = render_to_string('partials/modals/upload.html')

    if request.method == 'POST':
        files = request.FILES

        ...

        mp3 = files.get('track')

        mp3 = MP3(mp3);
        print(mp3.info.length);

我已检查过该文件是否已损坏或无效,但当我尝试执行最后一行代码时,我得到了:

TypeError: invalid file: <TemporaryUploadedFile: mySong.mp3 (audio/mpeg)>

我不明白为什么它会给我这个,因为我可以读取文件,我甚至可以告诉django将文件发送到我的模型,然后保存到磁盘。为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

看起来你打算用文件名实例化MP3类,而不是文件句柄。我看不到用文件句柄实例化它的另一种方法,所以我认为你必须将library(purrr) df <- transpose(document$strike) %>% t %>% apply(FUN = unlist, MARGIN = 2) df <- df[-21] %>% data.frame %>% tbl_df df Source: local data frame [621 x 21] X_id number country date (fctr) (dbl) (fctr) (fctr) 1 55c79e711cbee48856a30886 1 Yemen 2002-11-03T00:00:00.000Z 2 55c79e711cbee48856a30887 2 Pakistan 2004-06-17T00:00:00.000Z 3 55c79e711cbee48856a30888 3 Pakistan 2005-05-08T00:00:00.000Z 4 55c79e721cbee48856a30889 4 Pakistan 2005-11-05T00:00:00.000Z 5 55c79e721cbee48856a3088a 5 Pakistan 2005-12-01T00:00:00.000Z 6 55c79e721cbee48856a3088b 6 Pakistan 2006-01-06T00:00:00.000Z 7 55c79e721cbee48856a3088c 7 Pakistan 2006-01-13T00:00:00.000Z 8 55c79e721cbee48856a3088d 8 Pakistan 2006-10-30T00:00:00.000Z 9 55c79e721cbee48856a3088e 9 Pakistan 2007-01-16T00:00:00.000Z 10 55c79e721cbee48856a3088f 10 Pakistan 2007-04-27T00:00:00.000Z .. ... ... ... ... Variables not shown: narrative (fctr), town (fctr), location (fctr), deaths (fctr), deaths_min (fctr), deaths_max (fctr), civilians (fctr), injuries (fctr), children (fctr), tweet_id (fctr), bureau_id (fctr), bij_summary_short (fctr), bij_link (fctr), target (fctr), lat (fctr), lon (fctr), names (fctr) 中的内容保存到文件中,然后执行request.FILES

相关问题