这可能是一个简单的解决方法,但在我的头脑周围有点麻烦;我正在从不同的脚本中读取行,并希望用变量替换行,但是将其替换为box1
而不是值55, 55.7
box1 = 55, 55.7
box2 = -9, -7
with open('parttest', 'r') as file :
filedata = file.read()
filedata = filedata.replace('box_lat', 'box1')
filedata = filedata.replace('box_lon', 'box2')
with open('buildtest', 'w') as file:
file.write(filedata)
答案 0 :(得分:2)
如果要替换变量box1的值,则需要删除它周围的引号。尝试:
box1 = "55, 55.7"
box2 = "-9, -7"
filedata = filedata.replace('box_lat', box1)
filedata = filedata.replace('box_lon', box2)
报价将替换为所附的文字;而变量名不应该用引号括起来。
答案 1 :(得分:2)
您目前正在使用变量的文字名替换这些值。如果您希望它使用这些变量名称引用的值,请省略引号。
接下来,您必须将这些变量转换为字符串,因为我怀疑您首先使用引号的原因是因为没有它们时出现错误。这是因为replace
只接受字符串,而变量为tuple
s。要解决此问题,请将变量强制转换为字符串。
filedata = filedata.replace('box_lat', str(box1))
如果您不想保留以tuple
的字符串表示形式出现的括号,可以将其删除:
filedata = filedata.replace('box_lat', str(box1).strip('()'))
答案 2 :(得分:0)
正如@tigerhawk 和@sam 所说,如果您在引号中输入内容,则表示您在引号中输入的字面意思,因此请尝试删除“box 1”周围的引号