Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php调用python脚本_Php_Python_Csv_Python 2.x - Fatal编程技术网

如何从php调用python脚本

如何从php调用python脚本,php,python,csv,python-2.x,Php,Python,Csv,Python 2.x,我需要将一个值从PHP传递到Python脚本,然后Python脚本将该值写入csv文件。但是,我遇到了一些困难,我的python在调用时会写入一个空的csv文件。有什么问题吗 <?php if (isset($_POST['data'])){ $data = $_POST['data']; $result = exec("python processData.py .$data"); echo $result; } ?> 可能是$d

我需要将一个值从PHP传递到Python脚本,然后Python脚本将该值写入csv文件。但是,我遇到了一些困难,我的python在调用时会写入一个空的csv文件。有什么问题吗

<?php
if (isset($_POST['data'])){
  $data = $_POST['data'];
  $result = exec("python processData.py .$data");
  echo $result;
  }                
 ?>

可能是$data之前的,请尝试以下操作:

$result = exec("python processData.py {$data}");
问候

$result = exec("python processData.py .$data");
如果您键入:
$data=“hello little world”,可能会出现问题
它会被当作

 $result = exec("python processData.py .hello little world");
sys.argv将是

  ["processData.py",".hello","little","world"]
不幸的是,我不知道nltk将如何处理这一点,但肯定不是你想要的

旁白

d = [i.lower() for i in tokens if (not tokens in stopwords.words('english'))]  
应该重写

if  tokens not in stopwords.words('english'):
   d = [i.lower() for i in tokens]
else: #if your actually planning on using d anywhere ... currently your just throwing it out
      # not using d makes all of this just as effective as a pass statement
   d = []

exec()或任何东西都没有问题。问题是
nltk
模块无法定位
nltk\u数据
目录。对于它,只需定位系统中存在
nltk_数据的位置即可:通常是
~/nltk_数据
。现在,在运行函数时导入并添加该路径

import nltk;
现在,
nltk.data.path
是搜索模块的位置列表。您只需执行以下操作:

nltk.data.path.append("your location/directory");

您可以尝试在附加“a”模式下打开文件,以便不会覆盖以前的任何文件。一些与您的问题不直接相关的观察结果:您分配给
d
,但不使用结果
if(不是stopwords.words('english')中的标记)
不是惯用Python。如果代币不在stopwords.words('english')
中,则最好编写
。即使如此,当代币仅依赖于整个代币时,他也会对代币中的每个
i进行评估。。。很可能是一次大的减速,但它没有起作用。在cmd processData.py中,“我的数据”可以工作,但在php中无法工作
nltk.data.path.append("your location/directory");