替换为变量

2024-09-30 01:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个简单的修复方法,但在理解它时有点麻烦;我正在从另一个脚本中读取行,并希望用变量替换行,但是它用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)

Tags: 方法脚本boxreadaswithopenreplace
2条回答

如果要替换为变量box1的值,则需要删除其周围的引号。尝试:

box1 = "55, 55.7"
box2 = "-9, -7"
filedata = filedata.replace('box_lat', box1)
filedata = filedata.replace('box_lon', box2)

引号将替换为包含的文本;但是,变量名不应包含在引号中。

您当前正在用变量的文字名称替换这些值。如果希望它使用那些变量名所引用的值,请省略引号。

接下来,您必须将这些变量转换为字符串,因为我怀疑您首先使用引号的原因是,如果没有引号,也会出现错误。这是因为replace只接受字符串,而您的变量是tuples。若要解决此问题,请将变量转换为字符串。

filedata = filedata.replace('box_lat', str(box1))

如果不想保留出现在tuple的字符串表示形式中的括号,可以将它们去掉:

filedata = filedata.replace('box_lat', str(box1).strip('()'))

相关问题 更多 >

    热门问题