2016-02-29 69 views
0

我怎样才能从我的触发HTML代码中使用以下的Python命令移动虽然网站上的文件如何使用背景Python脚本

Import shutil 

src ="C:/Users/Me/Desktop/Index/book1.txt 

dst ="D:/USBPEN" 

shutil.copy(src, dst) 

这只有在本地工作,我我只是使用HTML网站来创建GUI,我想调用python命令在我的机器上本地移动文件。

我的本地Apache服务器能够运行的.py

任何人都可以请帮助我这一点。

回答

0

你需要让你的Python脚本是可执行的,然后你就可以通过Apache CGI,它会执行打电话给你的Python脚本。您需要mod_cgi工作以允许您通过apache运行python脚本。我们来看脚本copy.cgi(你可以将它命名为.cgi)。第一步是创建一个包含以下内容的文件:

#!/usr/bin/python 

Import shutil 
src ="C:/Users/Me/Desktop/Index/book1.txt 
dst ="D:/USBPEN" 
shutil.copy(src, dst) 

注意在文件#!/usr/bin/python上方的行会向你解释其中Python是安装在你的机器上。要找出python的安装位置,请输入:

whereis python 

下一步是让脚本可执行。要做到这一点回到外壳和类型:

chmod +x copy.cgi 

现在你应该能去的网址:http://yourip/copy.cgi和脚本将执行你的机器上。把这个放到你的html里,你可以像这样链接url:

<a href="http://yourip/copy.cgi">copy</a> 

希望有帮助!

如果您遇到麻烦mod_cgi它可能是更容易使一个包装PHP脚本,你可以调用随后调用你的Python脚本。您可以使用以下脚本copy.php执行此操作。

<?php 
// Runs the file copy.py and prints the ouput to the browser. 
echo exec("python /path/to/your/copy.py"); 
?> 

然后,只需转到网址http://yourip/copy.php。您添加到您的Python脚本的任何打印语句将显示在浏览器中。

+0

感谢您的帮助 我可以看到这是如何想的工作,但它似乎并没有尝试它 后也正如你预测我有麻烦与第一种方法,以便尝试你提到的第二个方法,使用PHP包装器来运行python的一个 我在htdocs目录文件中有两个文件(copy.py和copy.php) 的copy.php由关 <?PHP //运行文件copy.py并将输出打印到浏览器。 echo exec(“python /Users/Me/Desktop/copy.py”); ? > 和我copy.py由 #/ Python27/Python的 进口shutil SRC =“C:/用户/威尔/桌面/索引/ book1的。txt“ dst =”D:/ ereader“ shutil.copy(src,dst) – Nishi

+0

你能够在本地运行'python/Users/Me/Desktop/copy.py'吗? “;'在你的php脚本中,然后转到url,看看你是否可以看到'Hello World'来查看它是否是php脚本,你可能需要将python文件移动到你服务apache服务器的目录中你可以发布当你运行php脚本的输出吗 – swsmith

+0

我得到了这个工作,重复你提供的步骤,我可以点击我的主页上的链接触发'copy.php'从http:// localhost/copy.php,它将使用存储在C:/xampp/htdocs/copy.py中的'copy.py'文件来移动文件。然而,是否有一种方法可以在后台执行此操作,而不会离开我主要的网页是在GUI上使用的localhost/EbookLibrary.html。Somethin g,这将允许点击[Get This Book]按钮的图像,触发此事件? Essentialy: - 的MainPage(点击获取图书按钮)>触发PHP>运行PY 不改变页面 感谢 – Nishi