Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Python 在Google App Engine平台的服务器中获取文件夹中的静态文件列表_Python_File_Google App Engine - Fatal编程技术网

Python 在Google App Engine平台的服务器中获取文件夹中的静态文件列表

Python 在Google App Engine平台的服务器中获取文件夹中的静态文件列表,python,file,google-app-engine,Python,File,Google App Engine,我使用谷歌应用程序引擎来托管我的网站,大部分是静态页面。但有一部分我需要从服务器中的文件夹中获取图像列表,并使用JavaScript将这些图像动态添加到页面中 我使用python脚本中的os.walk(“static/images/temp/1.jpg”)在本地机器上运行它。但是在部署站点之后,它就不起作用了。python脚本返回空。在Google App Engine中获取静态文件列表是否应该有不同的方法?主要问题是静态目录中的文件(我假设您正在使用它来提供文件)存储在与代码不同的位置,因此不

我使用谷歌应用程序引擎来托管我的网站,大部分是静态页面。但有一部分我需要从服务器中的文件夹中获取图像列表,并使用JavaScript将这些图像动态添加到页面中


我使用python脚本中的
os.walk(“static/images/temp/1.jpg”)
在本地机器上运行它。但是在部署站点之后,它就不起作用了。python脚本返回空。在Google App Engine中获取静态文件列表是否应该有不同的方法?

主要问题是静态目录中的文件(我假设您正在使用它来提供文件)存储在与代码不同的位置,因此不在代码的文件目录中

您可以做的一件事(有关类似问题,请参阅)是在另一个目录中创建指向您的文件的符号链接(或只是复制它们),而您在
app.yaml
中不将其声明为
静态目录(或根本不声明)。然后,它将与您的应用程序代码共存,您可以使用
os
引用它。例如,下面是一些非常简单的代码,它迭代根目录中名为
upload\u stuff
的目录中的文件:

class MainPage(webapp2.RequestHandler):
  def get(self):
    path = os.path.join(os.path.dirname(__file__), 'upload_stuff')
    for filename in os.listdir(path):
      # Here you can do what you need with the files
      self.response.out.write(filename)

您可以根据需要对其进行调整,但基本思想是,您需要将文件与代码一起以静态形式存储

接下来的问题是,如果我只是将文件移动到另一个目录,而不是将它们声明为静态,以便python脚本可以访问它们,那么我的static.htm页面是否能够访问这些图像?我需要python脚本的主要原因是,我可以在特定文件夹中上传任意数量的照片,获取列表并将其动态添加到static.htm页面。@johng我认为在您的情况下,文件名很重要,是吗?如果是这样的话,您可以做一些事情,比如检索该文件夹中所有文件的列表,然后将它们输入到脚本中,并正确引用
static
文件夹。例如,如果您得到了列表,并且列表中包含了
file1.png
,那么您可以确保引用
/static/images/file1.png
(或者您的图像路径是什么)将返回图像,因为您的非静态目录将包含与静态目录完全相同的内容。这有意义吗?是的,我只需要文件名。这意味着我必须保留2个文件夹(1个静态文件夹和1个非静态文件夹)才能包含相同的图像。我试图避免这种情况。我只是想知道是否有可能只是有一个非静态的图像文件夹。让python脚本从该非静态文件夹获取文件名,然后通过
从静态html文件访问该非静态文件夹tag@JohnNg一种方法是从包含实际文件的目录创建一个符号链接,这样就不必担心修改两个目录(对主目录的更改将反映在符号链接目录中)。在Linux上,这类似于
ln-s images/linked_images/
,其中
linked_images
是包含指向静态目录的符号链接的文件夹。@johng不可能的原因是文件位于给定位置(比如说
root/images/image1.png
)不一定可以通过说
/images/image1.png
来访问。因此,当您试图为它们提供服务时,您不会说“我想为这个路径上找到的图像提供服务”。因此,您必须创建一个
静态目录
,它的文件系统位于与您的代码不同的区域。这有意义吗?