向filename-python添加额外信息



我使用以下行通过添加计时和删除额外空间来重命名我的文件,并将其替换为(-)如果我想在时间之前添加额外的信息,比如标签,

filename = ("%s_%s.mp4" %(pfile, time.strftime("%Y-%m-%d_%H:%M:%S",time.localtime()))).replace(" ", "-")

当前输出看起来像

testfile_2016-07-25_12:17:14.mp4

我希望将文件输出为

testfile_2016-07-25_12:17:14-MediaFile.mp4

尝试以下操作,

filename = ("%s_%s_%s.mp4" %(pfile, time.strftime("%Y-%m-%d_%H:%M:%S","Mediafile",time.localtime()))).replace(" ", "-")

我错过了什么?

您错误地使用了函数strftime。Strftime只需要2个参数,而你只需要传递3个参数。

您需要从时间中生成字符串,并应用一些字符串操作来附加额外的信息。

如果您想将MediaFile添加到文件名的末尾,只需执行以下操作即可。

filename = ("%s_%s-MediaFile.mp4" %(pfile, time.strftime("%Y-%m-%d_%H:%M:%S",time.localtime()))).replace(" ", "-")
filename = ("%s_%s-%s.mp4" %(pfile, time.strftime("%Y-%m-%d_%H:%M:%S",time.localtime()), 'MediaFile')).replace(' ', '-')
# 'testfile_2016-07-25_10:29:28-MediaFile.mp4'

为了更好地理解这是如何工作的并稍微提高可读性,您可以在一个单独的变量中定义时间戳:

timestr = time.strftime("%Y-%m-%d_%H:%M:%S", time.localtime()) # 2016-07-25_10:31:03
filename = ("%s_%s-%s" %(pfile, timestr, 'MediaFile')).replace(' ', '-')
# 'testfile_2016-07-25_10:31:03-MediaFile.mp4'

filename = ("%s_%s-MediaFile.mp4" %(pfile, timestr)).replace(' ', '-')

为了完整起见,您还可以使用format()方法:

filename = '{0}_{1}-MediaFile.mp4'.format(pfile, timestr).replace(' ', '-')

您要查找的应该是:

filename = ("%s_%s_%s.mp4" %(pfile, time.strftime("%Y-%m-%d_%H:%M:%S",time.localtime()),"Mediafile")).replace(" ", "-")

在您的原始代码中,"Mediafile"字符串不在正确的位置:您将其作为strftime()的参数,而应该将其作为要替换的字符串之一放在第二级括号中。

最新更新