У меня есть метод для чтения файла Newick и возврата строки в инфраструктуре Django, который выглядит следующим образом:
def handle_uploaded_file(f):
output = " "
for chunk in f.chunks():
output += chunk.decode('ascii')
return output.replace("\n", "").replace("\r", "")
def post(self, request):
form = HomeForm(request.POST, request.FILES)
if form.is_valid():
input = handle_uploaded_file(request.FILES['file'])
treeGelezen = Tree(input, format=1)
script, div = mainmain(treeGelezen)
form = HomeForm()
args = {'form': form, 'script': script, 'div': div}
return render(request, self.template_name, args)
, который отлично работает для обычных файлов Newick, но у меня также есть некоторые файлы со строкойв начале файла.Я пытаюсь сделать другой метод, который проверяет, есть ли перед файлом следующая строка (что имеет место в некоторых файлах): "newick;"и удаляет строку, если найдена.Это работает локально, но я не могу объединить их.Вот как это выглядит локально:
def removeNewick(tree_with_newick):
for x in tree_with_newick:
if x.startswith('newick;'):
print('')
return x
filepath = "C:\\Users\\msi00\\Desktop\\ncbi-taxanomy.tre"
tree_with_newick = open(filepath)
tree = Tree(newick=removeNewick(tree_with_newick), format=1)
, который отлично работает, когда я указываю путь только в python, поэтому я попытался объединить их в Django так:
def handle_uploaded_file(f):
tree_with_newick = open(f)
for x in tree_with_newick:
if x.startswith('newick;'):
print('')
return cutFile(x)
def cutFile(f):
output = " "
for chunk in f.chunks():
output += chunk.decode('ascii')
return output.replace("\n", "").replace("\r", "")
def post(self, request):
form = HomeForm(request.POST, request.FILES)
if form.is_valid():
input = handle_uploaded_file(request.FILES['file'])
treeGelezen = Tree(input, format=1)
script, div = mainmain(treeGelezen)
form = HomeForm()
args = {'form': form, 'script': script, 'div': div}
return render(request, self.template_name, args)
Что не 'не работает и выдает следующую ошибку:
expected str, bytes or os.PathLike object, not InMemoryUploadedFile
Я работаю над этим уже два дня и не могу понять, почему появляется ошибка.