Python: 使用变量打开文件

2 投票
2 回答
4609 浏览
提问于 2025-04-15 22:27

我在用Python 2.6打开一个随机生成名字的文件时遇到了问题。

import random

random = random.randint(1,10)

localfile = file("%s","wb") % random

然后我收到了一个关于最后一行的错误信息:

TypeError: unsupported operand type(s) for %: 'file' and 'int' 

我自己搞不定这个问题,也在谷歌上找过,但我相信一定有解决办法。

2 个回答

3

试试这个:

localfile = file("%s" % random,"wb")
9

这段代码可能可以正常工作:

import random

num = random.randint(1, 10)
localfile = open("%d" % num, "wb")

注意,我在这里改动了几个地方:

  1. 你不应该把生成的随机数赋值给一个叫 random 的变量,因为这样会覆盖掉原本指向 random 模块的引用。换句话说,如果你把 random 替换成随机生成的数字,你就无法再使用 random.randint 这个功能了。

  2. 格式化操作符(%)应该应用在你要格式化的字符串上,而不是在调用 file 方法的时候。

  3. 我想在 Python 3 中,file 已经不推荐使用了。是时候习惯用 open 来代替 file 了。

  4. 因为你要把一个整数格式化成字符串,所以应该写 "%d" 而不是 "%s"(虽然后者也能用)。

另一种写法是 "%d" % num 可以用 str(num) 来替代,这样可能会更高效一些。

撰写回答