2012-07-27 102 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