2016-11-30 1 views
0

J'ai un script python writetest.py ce qui suit:python ne pas écrire si appel de php

print "mark1" 
with open("/testfile.txt", "a") as myfile: 
    myfile.write("Hello World") 
print "mark2" 

Quand j'appelle le scrip dans la coquille, ça marche et ajoute: « Bonjour tout le monde » le testfile .SMS. Quand je l'appelle à l'aide de la commande php exec, il n'écrit pas:

exec('python writetest.py', $output, $return_var); 
print_r($output); 
print_r($return_var); 

qui imprime:

Array ([0] => mark1) 
1 

Mon script python fonctionne, mais arrête au code ouvert.

+3

Cela pourrait être un problème d'autorisation. L'utilisateur qui exécute le serveur Web a-t-il l'autorisation de lire/écrire dans ce fichier? – aynber

+1

Vous n'avez pas besoin de 'myfile.close()' quand vous utilisez l'instruction 'with' – ettanany

Répondre

0

Je pense qu'il ya problème de citation dans votre code

exec ('de writetest.py python ")

Une fois que vous résoudre ce problème, essayez à nouveau. Si je ne fonctionne toujours pas suggérer

exec('python writetest.py', $output , $return_var) 

voir: http://php.net/manual/en/function.exec.php

ensuite imprimer la sortie et return_var par print_r pour le débogage

print_r($output); 
print_r($return_var); 
+0

Désolé, c'était une faute de frappe. Edité la question originale – testuser

0

Comme aynber a souligné, il était un problème d'autorisations. J'ai donné à l'utilisateur du serveur web un accès en écriture et cela a fonctionné