我开发了一个 Django 应用程序,用户可以在其中上传多个文件。我可以在MySql数据库中以逗号(,)分隔的列表的形式上传所有多个文件及其路径。例如我上传了三个文件
- 记录缺陷.docx, 2.Mocks(1).pptx 和 3.Mocksv2.pptx
它会按如下方式存储在数据库中(将单个文件路径转换为列表并将所有路径连接到以下形式):
FileStore/client/Logging a Defect.docx,FileStore/client/Mocks (1).pptx,FileStore/client/Mocksv2.pptx,
现在我在删除特定文件时需要帮助。例如,当我删除 Logging a Defect.docx 时,我应该单独删除列表的第一个元素并保留其他两个路径。我将仅发送文档名称。
我正在将路径作为列表检索,然后我必须检查正在传递的文档名称是否存在于列表的每个元素中,如果匹配,那么我应该删除该元素,保持其他元素完好无损。如何处理这个问题?听起来更像是 python 问题而不是 Django 问题。
最佳答案
使用list-expression过滤分割后的文本,并使用join函数重建字符串
>>> db_path = 'FileStore/client/Logging a Defect.docx,FileStore/client/Mocks (1).pptx,FileStore/client/Mocksv2.pptx'
>>> file_to_delete = 'Logging a Defect.docx'
>>> file_separator = ","
>>> new_db_path = [
... path.strip()
... for path in db_path.split(file_separator)
... if path.strip() and file_to_delete not in path
... ]
>>> string_to_save = file_separator.join(new_db_path)
>>> string_to_save
'FileStore/client/Mocks (1).pptx,FileStore/client/Mocksv2.pptx'
关于python - 需要一些帮助从列表中删除数据并再次将其附加到同一列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014902/