Python 在字符串中的两个位置插入变量

Python 在字符串中的两个位置插入变量,python,string-formatting,Python,String Formatting,如何在文件路径中的两个位置获取年份字符串 year = str(date.today().year) filename = r'output.csv\Year\{}.csv'.format(year) 它使用一个括号将{}更改为2016.csv但是 如果我将Year替换为r'output.csv\{}\{}csv.format(Year)的第二个{},它会显示索引器:元组索引超出范围,如下所示: In [1]: 'output.csv/{0}/{0}.csv'.format(2016) Out

如何在文件路径中的两个位置获取年份字符串

year = str(date.today().year)
filename = r'output.csv\Year\{}.csv'.format(year)
它使用一个括号将
{}
更改为
2016.csv
但是

如果我将
Year
替换为
r'output.csv\{}\{}csv.format(Year)
的第二个
{}
,它会显示
索引器:元组索引超出范围

,如下所示:

In [1]: 'output.csv/{0}/{0}.csv'.format(2016)
Out[1]: 'output.csv/2016/2016.csv'
对于空的花括号,
format
仅意味着
{}
的每个连续出现对应于您传递的一个位置参数。 如果需要不同的顺序,只需显式指定索引即可


还请注意,我使用斜杠作为分隔符,这被认为是更好的文件路径做法,并且我使用了
int
作为年份(因此您不需要将其转换为
str

@Lev Levitsky我需要它随当前年份而更改,并保留
.format(year)
,以便在时间到来时更改为2017年。我没那么清楚sorry@iOSecure只需使用
年份
变量即可。我用2016来演示,因为你的问题实际上是关于字符串格式,而不是如何获取当前年份。@Lev Levitsky哦,好的,谢谢你,所以如果我有一个
\Month\year
,需要从两个不同的字符串中提取,它将是
\{0}\{1}.csv.format(year)(Month)
?@iOSecure在这种情况下,你可以使用索引,太-
'\{1}\{0}.csv'.format(year,month)
-请注意我们是如何依次传递年份和月份的,但格式字符串中的索引是1和0-或者您可以按正确的顺序传递它们,而不使用任何索引:
'\{}.csv'.format(month,year)
。我添加了一个指向文档的链接以供参考。