2012-07-27 98 views
0

在Python中,我打开一个文本文件并逐行读取它,并在评估它之前strip()该行。 当我评估这条线时,我有一条if语句来检查该行是否是“随机”,然后将一个随机数放入一个名为genRandom的变量中。我在我的另一行代码,看起来像这样:Python .replace()错误

thisLine.replace("genRANDOM",genRandom) #Replace genRANDOM with the random number

在每一行,似乎工作正常。在输入文本文件中,我有一条线,看起来像这样:

-genRANDOM

每当我的脚本计算那行,我得到这个错误:

Traceback (most recent call last): 
    File "D:\Mass Storage\pythonscripts\TurnByTurn\execute.py", line 37, in <module> 
    thisLine.replace("genRANDOM",genRandom) #Replace genRANDOM with the random number 
TypeError: expected a character buffer object 

我该如何解决这个问题?提前致谢!

+0

尝试'str(genRandom)' – JBernardo 2012-07-27 23:57:57

回答

2

您要求thisLine.replace将字符串"genRANDOM"替换为genRandom。这是行不通的,因为它“期望一个字符缓冲对象”(比如一个字符串),而不是一个数字。

尝试使用str(genRandom),将其变成字符串:"4"而不是4

此外,你可能想要另外命名变量; genRandom听起来像一个函数,它为我生成一个随机数,而不是生成的随机数。

+0

genRandom是一个变量。正如我所说,这是一个随机生成的数字。 str(genRandom())工作,但是,谢谢! – Andrey 2012-07-28 00:00:36

+0

@ghostmancer是的,对不起,我最初错过了那部分问题;就像我在编辑中所说的那样,'genRandom'对我来说听起来更像是一个函数,而不是一个数字。 :) – Dougal 2012-07-28 00:01:33