0

Pythonスクリプトをcronjobしようとしています。私はcPanelを介して設定し、私のpythonスクリプトは想定どおりのhtmlファイルを生成するので、正しいコマンドを知っています(「python /path」だけですよね?)

ただし、生成された html は途中で停止します (for ループを開始する必要がある 2 番目の f.write() の直後)。

このスクリプトをローカルで実行しても問題はありません。

from SearchPhone import SearchPhone

phones = ["Iphone 3", "Iphone 4", "Iphone 5","Galaxy s3", "Galaxy s2", "LG Lucid", "LG Esteem", "HTC One S", "Droid 4",
          "Droid RAZR MAXX", "HTC EVO", "Galaxy Nexus", "LG Optimus 2", "LG Ignite",
          "Galaxy Note", "HTC Amaze", "HTC Rezound", "HTC Vivid", "HTC Rhyme", "Motorola Photon",
          "Motorola Milestone", "myTouch slide", "HTC Status", "Droid 3", "HTC Evo 3d", "HTC Wildfire",
          "LG Optimus 3d", "HTC ThunderBolt", "Incredible 2", "Kyocera Echo", "Galaxy S 4g",
          "HTC Inspire", "LG Optimus 2x", "Samsung Gem", "HTC Evo Shift", "Nexus S", "LG Axis", "Droid 2",
          "G2", "Droid x", "Droid Incredible" 
          ]

f = open('celly.html','w')


f.write("""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Celly Blue Book</title>
</head>

<body>
</body>
</html>
""")

#table
f.write('<table width="100%" border="1">')
for x in phones:
    y = SearchPhone(x)
    f.write( "\t<tr>")
    f.write( "\t\t<td>" + str(y[0]) + "</td>")
    f.write( "\t\t<td>" + str(y[1]) + "</td>")
    f.write( "\t\t<td>" + str(y[2]) + "</td>")
    f.write( "\t\t<td>" + str(y[3]) + "</td>")
    f.write( "\t\t<td>" + str(y[4]) + "</td>")
    f.write( "\t</tr>"

f.write('</table>')

f.close()
4

1 に答える 1

1
  1. forループの最後の行に構文エラーがあります:

    f.write( "\t</tr>"

  2. 本番サーバーに書き込み権限がない可能性があります。これを一度試してください。

f = open('/tmp/celly.html','w')

これが機能する場合は、書き込み許可の問題です。celly.html現在のフォルダにあるファイルの権限を確認 してください。書き込み可能である必要があります。

于 2012-12-03T09:45:28.797 に答える