Linux 无法解决TypeError:'&燃气轮机';在';非类型';和';int';

Linux 无法解决TypeError:'&燃气轮机';在';非类型';和';int';,linux,python-3.x,Linux,Python 3.x,我有一个很长的音频文件列表,其中一些超过一个小时。我正在使用Jupyter笔记本、Python3.6和TinyTag库来获得音频的持续时间。我下面的代码检查了这些文件,如果一个文件的长度超过一个小时,它会将该文件分成一个小时长的片段,剩下的片段不到一个小时,并将片段复制为fname_1、fname_2等。该代码适用于我以前尝试过的数据集,但这次运行了一段时间后,我得到了下面的错误。我不知道这是从哪里来的,也不知道如何解决。我已经读过类似标题的问题,但内容不同。提前谢谢 # fpaths is t

我有一个很长的音频文件列表,其中一些超过一个小时。我正在使用Jupyter笔记本、Python3.6和TinyTag库来获得音频的持续时间。我下面的代码检查了这些文件,如果一个文件的长度超过一个小时,它会将该文件分成一个小时长的片段,剩下的片段不到一个小时,并将片段复制为fname_1、fname_2等。该代码适用于我以前尝试过的数据集,但这次运行了一段时间后,我得到了下面的错误。我不知道这是从哪里来的,也不知道如何解决。我已经读过类似标题的问题,但内容不同。提前谢谢

# fpaths is the list of filepaths
for i in range(0,len(fpaths)):
    fpath=fpaths[i]
    fname=os.path.basename(fpath)
    fname0=os.path.splitext(fname)[0] #name without extension
    tag = TinyTag.get(fname)
    if tag.duration > 3600:
        cmd2 = "ffmpeg -i %s -f segment -segment_time 3600 -c copy %s" %(fpath, fname0) + "_%d.wav"
        os.system(cmd2)
        os.remove(fpath)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-10-79d0ceebf75d> in <module>()
      7     fname0=os.path.splitext(fname)[0]
      8     tag = TinyTag.get(fname)
----> 9     if tag.duration > 3600:
     10         cmd2 = "ffmpeg -i %s -f segment -segment_time 3600 -c copy %s" %(fpath, fname0) + "_%d.wav"
     11         os.system(cmd2)

TypeError: '>' not supported between instances of 'NoneType' and 'int'
#fpath是文件路径列表
对于范围(0,len(fpath))中的i:
fpath=fpath[i]
fname=os.path.basename(fpath)
fname0=os.path.splitext(fname)[0]#不带扩展名的名称
tag=TinyTag.get(fname)
如果tag.duration>3600:
cmd2=“ffmpeg-i%s-f段-段\u时间3600-c副本%s”%(fpath,fname0)+“\u%d.wav”
操作系统(cmd2)
删除操作系统(fpath)
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
7 fname0=os.path.splitext(fname)[0]
8 tag=TinyTag.get(fname)
---->9如果标记持续时间>3600:
10 cmd2=“ffmpeg-i%s-f段-段\u时间3600-c副本%s”%(fpath,fname0)+“\u%d.wav”
11操作系统(cmd2)
TypeError:“>”在“NoneType”和“int”的实例之间不受支持

有些结果似乎没有持续时间

或许可以改为:

if tag.duration and tag.duration > 3600:
    .....

哦,这完全有道理,只是尝试了你的解决方案,它的工作,非常感谢!