类型错误:';str';对象在Python中不可调用

类型错误:';str';对象在Python中不可调用,python,python-2.7,Python,Python 2.7,我已经为我的项目目的编写了以下程序 import glob import os path = "/home/madhusudan/1/*.txt" files = glob.glob(path) s1 = "<add>\n<doc>\n\t<field name = \"id\">" s2 = "</field>\n" s3 = "<field name = \"features\">" s4 = "</doc>\n<

我已经为我的项目目的编写了以下程序

import glob
import os
path = "/home/madhusudan/1/*.txt"
files = glob.glob(path)

s1 = "<add>\n<doc>\n\t<field name = \"id\">"
s2 = "</field>\n"
s3 = "<field name = \"features\">"
s4 = "</doc>\n</add>"

i = 150
for file in files:
    f = open(file,"r")
    str = f.read()
    file1 = "/home/madhusudan/2/"+os.path.splitext(os.path.basename(file))[0] + ".xml"
    f1 = open(file1,"w")
    content = s1 + str(i) + s2 + s3 + f.read() + s2 + s4 
    f1.write(content)
    i = i + 1
导入全局
导入操作系统
path=“/home/madhusudan/1/*.txt”
files=glob.glob(路径)
s1=“\n\n\t”
s2=“\n”
s3=“”
s4=“\n”
i=150
对于文件中的文件:
f=打开(文件“r”)
str=f.read()
file1=“/home/madhusudan/2/”+os.path.splitext(os.path.basename(文件))[0]+.xml”
f1=打开(文件1,“w”)
content=s1+str(i)+s2+s3+f.read()+s2+s4
f1.编写(内容)
i=i+1
运行此代码时,我遇到以下错误:

Traceback (most recent call last):
  File "test.py", line 18, in <module>
    id1 = str(i)
TypeError: 'str' object is not callable
回溯(最近一次呼叫最后一次):
文件“test.py”,第18行,在
id1=str(一)
TypeError:“str”对象不可调用

有人能帮我解决这个问题吗?

在下一行中,代码用字符串对象覆盖内置函数
str

str = f.read()
使用不同的名称以防止出现这种情况


str(1) '1' >>>str='字符串对象' >>>str(1) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:“str”对象不可调用
您将文件内容分配给了
str

str = f.read()
这掩盖了内置功能


不要使用
str
作为本地名称;选择其他名称。

str
是处理字符串值的保留名称。 因此,您可以将其用作局部变量名。
选择其他东西。

str_value=f.read()
您的回溯与您发布的代码不匹配;我们可以看到类似的行也有同样的问题,但是确实发布了您发布的代码引发的实际错误。使用不同的变量而不是
str
str=f。read()
表明您显然对保持对内置
str
函数/类型的访问不感兴趣。没关系,但你应该知道你应该坚持这一点。(新加坡国家公园)
str = f.read()
str_value = f.read()