“如何修复”;int的文本无效<&燃气轮机;以10为基数“;python脚本中的错误
我正在运行一个脚本来转换一些媒体文件,当我这样做时,脚本返回错误“如何修复”;int的文本无效<&燃气轮机;以10为基数“;python脚本中的错误,python,python-2.7,Python,Python 2.7,我正在运行一个脚本来转换一些媒体文件,当我这样做时,脚本返回错误invalid literal for int,base 10:line 132。这不是我的脚本,也没有作者的支持,这就是为什么我在这里寻求帮助 # Make time human-readable def humanize_time(secs): ## Line:132 if secs != "N/A": mins, secs = divmod(int(secs), 60) hours, m
invalid literal for int,base 10:line 132
。这不是我的脚本,也没有作者的支持,这就是为什么我在这里寻求帮助
# Make time human-readable
def humanize_time(secs): ## Line:132
if secs != "N/A":
mins, secs = divmod(int(secs), 60)
hours, mins = divmod(mins, 60)
return '%02d:%02d:%02d' % (hours, mins, secs)
else:
mins, secs = divmod(30, 60)
hours, mins = divmod(mins, 60)
return '%02d:%02d:%02d' % (hours, mins, secs)
Traceback (most recent call last):
File "C:\conv2mp4-py.py", line 415, in <module>
codec_discovery()
File "C:\conv2mp4-py.py", line 165, in codec_discover
get_duration_temp = humanize_time(head)
File "C:\conv2mp4-py.py", line 132, in humanize_time
mins, secs = divmod(int(secs), 60)
ValueError: invalid literal for int() with base 10: ''
#让时间变得易读
def人性化时间(秒):##行:132
如果秒!=“不适用”:
分钟,秒=divmod(整数(秒),60)
小时,分钟=divmod(分钟,60)
返回“%02d:%02d:%02d%”(小时、分钟、秒)
其他:
分,秒=divmod(30,60)
小时,分钟=divmod(分钟,60)
返回“%02d:%02d:%02d%”(小时、分钟、秒)
回溯(最近一次呼叫最后一次):
文件“C:\conv2mp4 py.py”,第415行,在
编解码器_发现()
编解码器中的文件“C:\conv2mp4 py.py”,第165行
获取时间=人性化时间(头)
文件“C:\conv2mp4 py.py”,第132行,在人化时间
分钟,秒=divmod(整数(秒),60)
ValueError:基数为10的int()的文本无效:“”
脚本:可能
secs
变量为空或包含空格。如果可以保证secs
的值不包含空格,请检查字符串是否为空
# Make time human-readable
Line:132 def humanize_time(secs):
if secs != "":
mins, secs = divmod(int(secs), 60)
hours, mins = divmod(mins, 60)
return '%02d:%02d:%02d' % (hours, mins, secs)
else:
mins, secs = divmod(30, 60)
hours, mins = divmod(mins, 60)
return '%02d:%02d:%02d' % (hours, mins, secs)
实现该功能的正确方法是:
def humanize_time(secs=30):
mins, secs = divmod(int(secs), 60)
hours, mins = divmod(mins, 60)
return '%02d:%02d:%02d' % (hours, mins, secs)
但在这种情况下,您必须注意传递给它的参数
如果无法控制输入,则必须实施异常管理:
def humanize_time(secs=30):
try:
mins, secs = divmod(int(secs), 60)
hours, mins = divmod(mins, 60)
return '%02d:%02d:%02d' % (hours, mins, secs)
except (TypeError, ValueError) as e:
raise ValueError("Invalid value for 'secs': '" + str(secs) + "'")
print humanize_time(12) #>> 00:00:12
print humanize_time("a") #>> ValueError: Invalid value for 'secs': 'a'
这意味着您正在尝试将非整数值转换为十进制基数为10的整数值。尝试将转换包装在
Try except
块中,我看不到“第132行”。您能否显示错误的确切位置,以及完整的回溯和。当您执行int(secs)
时,secs
的值是多少?它不是一个数字&因此是错误的。只需在第一次调用divmod
之前打印secs
的值。这显然不是你所期望的。不要用空字符串调用personalize\u time
。