在Python中写入文本文件时替换&qout;为

0 投票
1 回答
550 浏览
提问于 2025-04-17 20:20

我正在从一个文本文件中读取列名,然后用这些列名来生成一个SQL模板,接着把生成的模板写入一个SQL文件。问题是,有时候列名中会有冒号,这就需要在查询中用双引号把它们包起来。

列名文本文件的例子:

column1
"column2:extra"
column3

我遇到了一个问题,就是输出文件中的双引号被替换成了"。我试过使用

#read in column names
with open(attrs_file, 'r') as fields:
    attrs = fields.read().splitlines()

...

with open(sql_in, 'r') as sql:
    data = sql.read()
    data = pystache.render(data, {'replace':new})

with open(sql_out, 'wb') as sql:
    data = data.replace('&qout;', '"')
    #data = data.replace('&qout;', "\"")
    sql.write(data)

但是替换的方法没有奏效,我更不想在创建文件后再进行后处理去搜索和替换&quot。感谢任何建议。

1 个回答

0

replace这个方法不会直接在原来的字符串上进行修改,而是会返回一个新的字符串,里面包含了你想要的更改。所以你需要把这个返回的新字符串赋值给一个变量。

data = data.replace('&qout;', '"')

撰写回答