Python 类型错误:';内置函数或方法';对象没有属性'__获取项目';

Python 类型错误:';内置函数或方法';对象没有属性'__获取项目';,python,Python,我有一些简单的python函数 def readMainTemplate(templateFile): template = open(templateFile, 'r') data = template.read() index1 = data.index['['] #originally I passed it into data[] index2 = data.index[']'] template.close() return data[i

我有一些简单的
python
函数

def readMainTemplate(templateFile):
    template = open(templateFile, 'r')
    data = template.read()
    index1 = data.index['['] #originally I passed it into data[]
    index2 = data.index[']']
    template.close()
    return data[index1:index2]

def writeMainTemplate(template, name):
    file = open(name, 'w')
    file.write(template)
    file.close()

#runMainTemplate('main.template')
def runMainTemplate(template):
    code = readMainTemplate(template)
    writeMainTemplate(code, 'main.cpp')
他们基本上假设从文件中读取某种模板(类似这样的内容)

但我有这个错误

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "genmain.py", line 18, in runMainTemplate
    code = readMainTemplate(template)
  File "genmain.py", line 6, in readMainTemplate
    index1 = data.index['['] #originally I passed it into data[]
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runMainTemplate中第18行的文件“genmain.py”
代码=readMainTemplate(模板)
readMainTemplate中第6行的文件“genmain.py”
index1=data.index['[']#最初我将其传递到data[]
TypeError:“内置函数”或“方法”对象没有属性“\uuuu getitem\uuuu”
我认为
data=template.read()
应该返回
string
,string应该允许执行操作切片
[:]

但为什么会出现错误?


还有一个问题:我应该把
python
脚本放在哪里,以便在文件系统的任何地方运行它?(我想通过提供模板的路径在当前文件夹的文件系统的任何地方生成文件)
问题是
索引
是一个方法,需要使用
()
而不是
[]
。要使用Kasra的示例:

>>> s="aeer"
>>> s.index('a')
0

哦,非常愚蠢的错误,我想念()!:)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "genmain.py", line 18, in runMainTemplate
    code = readMainTemplate(template)
  File "genmain.py", line 6, in readMainTemplate
    index1 = data.index['['] #originally I passed it into data[]
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
>>> s="aeer"
>>> s.index('a')
0