我有我的python文件名为convertImage.py,在文件中我有一个脚本将图像转换为我喜欢的,整个转换脚本设置在一个名为convertFile(fileName)的函数中
现在我的问题是我需要从linux命令行执行这个python脚本,同时传递convertFile(fileName)函数.
例:
linux user$: python convertImage.py convertFile(fileName)
Run Code Online (Sandbox Code Playgroud)
这应该执行传递适当函数的python脚本.
例:
def convertFile(fileName):
import os, sys
import Image
import string
splitName = string.split(fileName, "_")
endName = splitName[2]
splitTwo = string.split(endName, ".")
userFolder = splitTwo[0]
imageFile = "/var/www/uploads/tmp/"+fileName
...rest of the script...
return
Run Code Online (Sandbox Code Playgroud)
执行此python脚本并将文件名从liunx命令行正确传递给函数的正确方法是什么?
谢谢高级
好的,这适用于我的Linux服务器,但我正在我的PC上测试我的网站,我正在尝试让PHP执行我的python脚本,当然\是WINDOWS只有当我在我的linux机器上时路径改变.
$pyscript = 'C:\\wamp\\www\\testing\\scripts\\imageHandle.py';
$python = 'C:\\Python27\\python.exe';
$filePath = 'C:\\wamp\\www\\testing\\uploads\\thumbs\\10-05-2012-523.jpeg'
exec('$python $pyscript $filePath', $output, $return );
Run Code Online (Sandbox Code Playgroud)
这适用于我的linux机器,但不适用于我的Windows测试服务器.如何让它在Windows上运行?哦,这也适用于直接从Windows命令提示符运行
编辑:
这是解决方案,因为您可以在答案中阅读.
$cmd = "$python $pyscript $filePath";
exec("$cmd", $output);
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.将单个刻度改为双倍.
不确定这是php配置还是linux文件权限问题.我遇到的问题是当一个文件通过php使用move_uploaded_file()上传到组中设置为ubuntu并且所有者设置为www-data的目录时,上传的文件所有者和组权限更改为www-data导致问题我的python脚本进来并在上传的文件上执行任务.
例:
move_uploaded_file($tempFile,$targetSAVE);
Run Code Online (Sandbox Code Playgroud)
- $ targetSAVE目录设置为:
group: ubuntu
owner: www-data
permissions: 0755
Run Code Online (Sandbox Code Playgroud)
--php上传的文件将所有者和组更改为www-data
new file changes to:
group: www-data <-- need this set to *ubuntu*
owner: www-data
permissions: 0755
Run Code Online (Sandbox Code Playgroud)
--python脚本需要将上传文件的组设置为ubuntu
我如何配置php来设置所有权或上传文件组到ubuntu或如果这是一个Linux文件权限问题我该如何解决这个问题?
所有目录和子目录都设置为:group:ubuntu owner:ubuntu permissions:0755 除了文件上传到的目录外,设置为:
group: ubuntu
owner: www-data
permissions: 0755
Run Code Online (Sandbox Code Playgroud)