python bytes 操作_Python 3:不支持/:“float”和“bytes”的操作数类型
我正在緩慢地嘗試將一個舊的python 2代碼轉(zhuǎn)換為python 3,但是我遇到了一個障礙,代碼如下:seconds = functools.reduce(lambda x,y:x*60+y,map(int,duration.split(":")))
這給了我:TypeError: 'str' does not support the buffer interface
我把它改成:
^{pr2}$
這使得下面的rate = frames/seconds給了我這個錯誤:TypeError: unsupported operand type(s) for /: 'float' and 'bytes'
所以我試著把原來的字符串轉(zhuǎn)換成這樣的浮點seconds = float(functools.reduce(lambda x,y:x*60+y,map(int,duration.split(":"))))
但結(jié)果就是TypeError: 'str' does not support the buffer interface
誰能看看嗎?在import sys,os,re
import functools
from subprocess import *
if len(sys.argv)<=1:
print ("usage: python oneinn.py filename frames")
sys.exit(0)
try:
fvideo = sys.argv[1]
frames = float(sys.argv[2])
except:
sys.stderr.write("Failed to parse parameters.\n")
sys.exit(1)
output = Popen(["ffmpeg", "-i", fvideo], stderr=PIPE).communicate()
# searching and parsing "Duration: 00:05:24.13," from ffmpeg stderr, ignoring the centiseconds
re_duration = re.compile("Duration: (.*?)\.")
duration = b're_duration.search(output[1]).groups()[0]'
seconds = float(functools.reduce(lambda x,y:x*60+y,map(int,duration.split(":"))))
rate = frames/seconds
print ("Duration = %s (%i seconds)" % (duration, seconds))
print ("Capturing one frame every %.1f seconds" % (1/rate))
output = Popen(["ffmpeg", "-i", fvideo, "-r", str(rate), "-vcodec", "png", 'Preview-%d.png']).communicate()
總結(jié)
以上是生活随笔為你收集整理的python bytes 操作_Python 3:不支持/:“float”和“bytes”的操作数类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java数据集成是什么_数据集成 - B
- 下一篇: java jfinal 定时任务_JFi