2011-08-03 21 views
0

ファイルのように、私のApache WebサーバーにあるPHPファイルからPythonスクリプトを実行しています。私が持っている例は非常に基本的です。pythonスクリプトの基本ファイルI/Oに問題があります。

PHPファイル - test.phpを

<?php 
echo "hello"; 
echo exec("/usr/local/bin/python2.7 test1.py"); 
?> 

Pythonスクリプト - のtest1.py

print "world" 
fh = open ('testtest' ,'r') 
for line in fh: 
    print line 

内容 - TESTTEST

abcdefg 

「世界の版画I下の2行はtest1.pyではありませんが、追加するとすぐに印刷が停止しますfor line in file: Thあなたをアンク。 編集:testtestの内容を印刷しようとしています。

+0

'test.php'の3行目のコードにエラーがあります。括弧を閉じないと忘れました。 – BrainStorm

+0

pythonスクリプトを直接実行するとどうなりますか? –

+0

出力を投稿してください。 – BrainStorm

答えて

4

execは期待通りのことをしません。 documentationには、出力の最後の行だけが返されると記載されています。代わりにpassthruの使用をお勧めします。

+0

ありがとうございます。一度試してみると、緑色のチェックをしますが、これは今、たくさんの意味があります。 – Rell3oT

+0

パススルーが働いています。ファイルから読み込む場合は、そのファイルに+ xが必要であることに注意してください。私も777 testtestをchmodしなければならなかった – Rell3oT

0

変数fileに割り当てたくありません。これはPythonの組み込み関数です。ファイルハンドルにはfh、​​などを使用してください。それはそれに対処するのに十分かもしれません。

+0

ちょうどfhを試しましたが、うまくいきませんでした。良い考えだけど – Rell3oT

+1

@ Rell3oT - もちろん。そして、問題のファイルへの絶対パスを試してみたとおっしゃいましたか? sysとprint sys.pathをインポートした場合、どうなるでしょうか?あなたのスクリプトが存在するディレクトリを含んでいますか?もしそうでなければ、 'sys.path.append()'はそれを指定させます。 –

+0

Pythonの組み込み関数は単なる参照に過ぎません。特にPythonの組み込み関数は、決して悪いことはありません。それは必ずしも良いことではありませんが、決して悪くはありません。 – stefan

関連する問題