在python中将输出重定向到文件

在python中将输出重定向到文件,python,Python,在shell脚本中,如果我们有以下内容: field1 = 22 qry="delete from table_name where id = $field1 echo $qry >> /tmp/query.ksh 这是我们的档案 从id=22的表名称中删除 我想在python中实现同样的效果 我应该如何在python中实现这一点 我在做什么 fo = open("file","a") fo.write(qry) 但这是行不通的 请建议正确的方法。类似于您已有的方法应该可以正常

在shell脚本中,如果我们有以下内容:

field1 = 22
qry="delete from table_name where id = $field1
echo $qry >> /tmp/query.ksh
这是我们的档案

从id=22的表名称中删除
我想在python中实现同样的效果

我应该如何在python中实现这一点 我在做什么

fo = open("file","a")
fo.write(qry)
但这是行不通的


请建议正确的方法。

类似于您已有的方法应该可以正常工作

   field1 = 22
   qry = "delete from table_name where id = {0}\n".format(field1)
   with open('your_file', 'a') as f:
     f.write(qry)

什么特别不起作用?你所有的python代码都在哪里?您只发布了两行,您在哪里定义了
qry

如果您希望附加到名为
文件的文件中,则显示的代码是正确的

请注意,您应该关闭打开的文件,或者(在最新的Python版本中)使用
语句。将shell代码转换为Python

field1 = 22
qry = "delete from table_name where id = {}".format(field1)
with open('/tmp/query.ksh', 'a') as of:
    of.write(qry)

请注意,在现实生活中,您不应该直接将数据插入到准备好的SQL语句中,因为这可能会导致SQL注入。

或者,您的代码正在工作 通过执行以下操作,可以将打印输出定向到文件:

import sys
sys.stdout = open("file","a")

field1 = 22
qry = "delete from table_name where id = {0}\n".format(field1)
print qry

@列夫。。。这是工作正常,但在文件中,我得到删除从表_名称,其中id={22}但我希望它像删除从表_名称,其中id=22请告诉我如何可以实现这一点。谢谢更改“where id=%d”%field1,如果它始终是int@KundanKumar奇怪的是Python 2.6吗?在Python2.7上,它运行良好。你能试试
{0}
而不是
{}
吗?