Python: 使用变量打开文件
我在用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")
注意,我在这里改动了几个地方:
你不应该把生成的随机数赋值给一个叫
random
的变量,因为这样会覆盖掉原本指向random
模块的引用。换句话说,如果你把random
替换成随机生成的数字,你就无法再使用random.randint
这个功能了。格式化操作符(
%
)应该应用在你要格式化的字符串上,而不是在调用file
方法的时候。我想在 Python 3 中,
file
已经不推荐使用了。是时候习惯用open
来代替file
了。因为你要把一个整数格式化成字符串,所以应该写
"%d"
而不是"%s"
(虽然后者也能用)。
另一种写法是 "%d" % num
可以用 str(num)
来替代,这样可能会更高效一些。