如何通过python访问web上托管的文件?
我正在开发一个在本地机器上运行的系统(python程序),但它需要获取web上某个位置的数据(在我的例子中是图像)。 它所做的是:如何通过python访问web上托管的文件?,python,localhost,remote-access,Python,Localhost,Remote Access,我正在开发一个在本地机器上运行的系统(python程序),但它需要获取web上某个位置的数据(在我的例子中是图像)。 它所做的是: 向webhost发送SQL查询(localhost当前) 响应会发回图像的名称(它存储在一个名为fetchedImages的数组中) 现在,一旦我有了所需图像的所有名称,我要做的就是直接从localhost访问该文件并将其复制到本地计算机。但我的问题是: 我试图通过以下方式访问它: source = "localhost/my-site/images&qu
localhost
当前)fetchedImages
的数组中)localhost
访问该文件并将其复制到本地计算机。但我的问题是:
我试图通过以下方式访问它:
source = "localhost/my-site/images"
localDir = "../images"
for image in fetchedImages:
copy(source+image,localDir)
但问题是,localhost是使用XAMPP创建的,我无法访问
localhost
,因为python不接受它作为路径。如果不是通过SimpleHTTPServer
而是通过XAMPP创建localhost,我如何访问它?可以使用请求解决它,如下所示:
import requests as req
from StringIO import StringIO
from PIL import Image
source = "http://localhost/my-site/images/"
localDir = "../images"
for image in fetchedImages:
remoteImage = req.get(source+image)
imgToCopy = Image.open(StringIO(remoteImage.content))
imgToCopy.save(localDir+image)
请求将访问web资源,从而使系统易于使用动态路径(localhost/my site
或www.my-site.com
)工作,然后将这些资源复制到本地计算机进行处理。localhost只是表示您尝试访问的IP地址的另一种方式,但是,如果您只想在本地驱动器上复制它,为什么不使用XAMP拥有所有信息的普通路径呢?例如,适用于Windows的source=“C:\Xampp\htdocs\my site\images\”
。这正是我目前正在做的,但我计划稍后在远程主机上托管网站(www.my-site.com
)。这就是为什么我不想使用source=“C:\Xampp\htdocs\my site\images\”
。如果我现在就这样设计它,它将灵活地采用路径更改,因为它将不再在静态路径上工作。