我有一个定义了两个值的 With 语句,它给我一个值错误。为什么,我该如何解决这个问题?

I Have a With-Statement That Defines Two Values, and It Is Giving Me a Value Error. Why, and How Do I Fix This?

这行代码给了我

ValueError: unsupported format character 't' (0x74) at index 7

with open("inventory.%s.txt" % file_number, "w") as f, open("gold.%.txt" % file_number, "w") as g:

这是什么意思,我该如何解决?

我认为它试图错误地解释格式字符串 - 具体来说,"%s.t"。您可以使用类似的语法截断数字,这可能会使格式化程序感到困惑。

如果您使用的是 python 3:

,我建议您使用任一 f 弦
with open(f"inventory.{file_number}.txt", "w") as f, open(f"gold.{file_number}.txt", "w") as g:

或者只是 str.format() 方法,否则:

with open("inventory.{}.txt".format(file_number), "w") as f, open("gold.{}.txt".format(file_number) as g:

这消除了歧义。