Python DJANGO:Can';t列出位于django项目中静态目录中的文件夹的内容

Python DJANGO:Can';t列出位于django项目中静态目录中的文件夹的内容,python,django,glob,Python,Django,Glob,在我的项目中,静态文件夹中有一个文件夹数据集,包含2个其他文件夹。我想列出每个文件夹的内容,并在HttpResponse中返回它。我在utils/data.py中定义了一个实用函数list\u dir\u content,其中我通过传递这些文件夹的路径来使用glob.glob()函数,但收到一个空结果:glob.glob()函数中的空列表[]。不管操作系统如何,我如何解决这个问题(我正在ubuntu或Windows10上开发实习项目)。谢谢 以下是我的项目结构和文件views.py、models

在我的项目中,静态文件夹中有一个文件夹数据集,包含2个其他文件夹。我想列出每个文件夹的内容,并在HttpResponse中返回它。我在utils/data.py中定义了一个实用函数list\u dir\u content,其中我通过传递这些文件夹的路径来使用glob.glob()函数,但收到一个空结果:glob.glob()函数中的空列表[]。不管操作系统如何,我如何解决这个问题(我正在ubuntu或Windows10上开发实习项目)。谢谢 以下是我的项目结构和文件views.py、models.py 您还可以看到调用实用程序函数list\u dir\u content的代码

提前感谢您的善意帮助。。。

只需在os.path.join()函数中用“,”替换导致os.path.join的所有斜杠('parent\u dir\u name','subdir\u name',…,'last\u dir\u name',''):


不清楚您的视图是否工作或列表目录内容函数是否工作。您的打印行:
print(“files\u results\u path:,files\u results\u path)
work吗?@FiddleStix,是的,它可以工作并打印一个空列表:[]。问题是glob.glob函数返回一个空列表。您是否假设需要给出相对于data.py的文件路径(../tsanalysisapp/…)?因为您没有,所以您需要给出相对于调用
runserver
命令的位置的路径。@FiddleStix,当我传递相对路径../tsanalysis/static/tsanalysispp/datasets/uts/*时,它也不起作用。对于data.py中的list-dir_content函数,我建议您将
glob.glob('../tsanalysisapp/static/tsanalysisapp/datasets/uts/*.')
替换为
glob.glob('.')
,甚至只是
print(os.getcwd())
,以便您知道自己的工作目录是什么。
#in views.py    
def server_uts_datasets(request):
    if request.method == 'GET':
        uts_datasets = Dataset.get_uts_datasets()
        uts_datasets_serializer = DatasetSerializer(uts_datasets, many=True)
        print(uts_datasets)
        return JsonResponse(uts_datasets_serializer.data, safe=False)

#in models.py
@classmethod    
def get_mts_datasets(cls): 
    mts_datasets_files = data.list_dir_content(settings.DATASETS_DIR)
    mts_datasets = []
    for mts_datasets_file in mts_datasets_files:
        dataset_type = 'mts'
        dataset_path = mts_datasets_file
        dataset_name = data.get_dataset_name(mts_datasets_file)
        dataset_nb_instances = data.get_nb_instances(mts_datasets_file)
        mts_dataset = Dataset(dataset_path = dataset_path, dataset_name = dataset_name, dataset_nb_instances = dataset_nb_instances, dataset_type = dataset_type)
        mts_datasets.append(mts_dataset)

    return mts_datasets



#in data.py
   import glob
   import os
   import pandas as pd
   import numpy as np
   import matplotlib.pyplot as plt

   def list_dir_content(dir_path, file_extension=''):
      files_pattern = dir_path + '/*.' + file_extension
      print("files_pattern : ", files_pattern)
     #files_results_paths = glob.glob(files_pattern)
     files_results_paths = glob.glob('../tsanalysisapp/static/tsanalysisapp/datasets/uts/*.')
     print("files_results_paths : ", files_results_paths)
     return files_results_paths

#in settings.py
MTS_DATASETS_DIR = os.path.join(BASE_DIR, 'tsanalysisapp/static/tsanalysisapp/datasets/mts') # paths to datasets in tne server
UTS_DATASETS_DIR = os.path.join(BASE_DIR, 'tsanalysisapp/static/tsanalysisapp/datasets/uts') # paths to datasets in tne server
MTS_DATASETS_DIR = os.path.join(BASE_DIR, 'tsanalysisapp', 'static', 'tsanalysisapp', 'datasets', 'mts', '*.')