-1

次のような sth がある場合のシェル スクリプト:

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)

しかし、これは機能していません。

正しい方法を提案してください。

4

3 に答える 3

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ますか?

于 2012-12-12T14:33:23.037 に答える
1

という名前のファイルに追加する場合、表示するコードは正しいですfile

with開いているファイルを閉じるか、(最近の Python バージョンでは) useステートメントを使用する必要があることに注意してください。シェル コードを 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 ステートメントにデータを直接挿入しないでください。

于 2012-12-12T14:33:38.213 に答える
0

コードは機能しています。または、次のようにして印刷出力をファイルに送信することもできます。

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

field1 = 22
qry = "delete from table_name where id = {0}\n".format(field1)
print qry
于 2012-12-12T14:49:51.423 に答える