我有以下代码,但是最后一个"_36.0_sumoprce.txt"
是唯一一个获取日期的,没有其他的。
dates = time.strftime("%Y%m%d")
files_to_remove = ("{!s}_23.0_sumoocop.txt","{!s}_36.0_sumoprce.txt", "{!s}_35.0_sumoeprc.txt".format(dates, dates, dates))
print(files_to_remove)
我目前看到的内容:
('{!s}_23.0_sumoocop.txt', '{!s}_36.0_sumoprce.txt', '20141218_35.0_sumoeprc.txt')
应该打印什么:
('20141218_23.0_sumoocop.txt', '20141218_36.0_sumoprce.txt', '20141218_35.0_sumoeprc.txt')
知道我做错了什么吗?
答案 0 :(得分:2)
您需要分别在每个字符串上调用str.format()
;你没有在前两个字符串上调用它:
files_to_remove = (
"{!s}_23.0_sumoocop.txt".format(dates),
"{!s}_36.0_sumoprce.txt".format(dates),
"{!s}_35.0_sumoeprc.txt".format(dates)
)
或者你可以使用列表compreshension:
files_to_remove = ("{!s}_23.0_sumoocop.txt", "{!s}_36.0_sumoprce.txt", "{!s}_35.0_sumoeprc.txt")
files_to_remove = [s.format(dates) for s in files_to_remove]
请注意,此处!s
完全冗余,因为dates
已经是字符串对象。