Как прочитать файл из каталога и удалить расширение при печати в django?
Я создаю веб-приложение на Django и реализовал две функции, одна для сохранения файлов csv в каталоге файлов на моем компьютере, а другая для чтения этих файлов для просмотра их на сайте.
Моя проблема в том, что я хочу читать файлы csv из каталога и отображать их, но без расширения csv, я хочу, чтобы их имена были единственным, что видно, но я продолжаю получать эту ошибку FileNotFoundError.
это функция, которая сохраняет файлы в директории
def openDataset(request):
if request.method == "GET":
return render(request, 'blog/upload_csv_ag.html')
if request.FILES.get("file2") is not None:
csv_file = request.FILES['file2']
if not csv_file.name.endswith('.csv'):
message='The uploaded file has to be CSV. Please try again.'
return render(request, 'blog/upload_csv_ag.html',{'message':message})
else:
save_path = 'C:/Users/user/Desktop/Fault Detection App/Uploaded_Datasets/'
file_name = csv_file.name
fs = FileSystemStorage(location=save_path)
file = fs.save(file_name, csv_file)
else:
message='no file is uploaded'
return render(request, 'blog/upload_csv_ag.html',{'message':message})
return render(request,'blog/upload_csv_ag.html',{'message':'Dataset Uploaded'})
и функция, которая считывает файлы из каталога
def read_datasets(request):
path = r"C:/Users/user/Desktop/Fault Detection App/Uploaded_Datasets/"
test = os.listdir(path)
path1, dirs, files = next(os.walk(path))
file_count = len(files)
print(file_count)
dataframes_list_html = []
file_names = []
index = []
for i in range(file_count):
temp_df = pd.read_csv(path+files[i])
print(files[i])
dataframes_list_html.append(temp_df.to_html(index=False))
index.append(i)
for item in test:
if item.endswith(".csv"):
os.remove(os.path.join(path, item))
file_names.append(files[i])
return render(request,'blog/view_datasets.html',{'files': file_names})
Извлечение имен файлов
Шаг 1 : итерация по директории
Более простым способом было бы просто сделать
for file in os.listdir(base_path)
Шаг 2 - удалить расширение
Вы можете использовать метод, который предложил evergreen
Шаг 3 - сохранение обработанной строки
Просто добавьте к списку имен_файлов, как вы это делаете, и верните список в контексте ответа
Чтение и отображение содержимого CSVs
На самом деле чтение и возврат содержимого CSV немного сложнее, но ваш текущий подход с использованием pandas для чтения файлов и преобразования dataframes в html-таблицы должен работать отлично. Только не забудьте вернуть список dataframes_list_html
в контексте, чтобы вы могли получить к нему доступ в шаблоне