Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何修复”;int的文本无效<&燃气轮机;以10为基数“;python脚本中的错误_Python_Python 2.7 - Fatal编程技术网

“如何修复”;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