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

时间:2012-12-12 14:23:42

标签: python

在shell脚本中,如果我们有......:/ / p>

field1 = 22
qry="delete from table_name where id = $field1
echo $qry >> /tmp/query.ksh

我们在文件中

delete from table_name where id = 22

我想在python中实现同样的目标

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

fo = open("file","a")
fo.write(qry)

但这不起作用。

请建议正确的方法。

3 个答案:

答案 0 :(得分:1)

像你已经拥有的东西应该可以正常工作。

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

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

答案 1 :(得分:1)

如果您想要附加到名为file的文件

,则显示的代码是正确的

请注意,您应该关闭您打开的文件或(在最近的Python版本上)使用with语句。将您的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注入。

答案 2 :(得分:0)

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

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

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