【问题标题】:How to check if a file is csv or not?如何检查文件是否为csv?
【发布时间】:2021-03-21 20:02:46
【问题描述】:

我有一个 django 视图函数,可以将 csv 转换为另一种分隔符格式。但是,我只想转换 csv 文件并拒绝其他文件。

def index(request):
    csv_form = ''
    if request.method == 'POST':
        csv_form = CsvForm(request.POST, request.FILES)
        if csv_form.is_valid():
            csv_file = TextIOWrapper(request.FILES['csv_file'].file, encoding='ascii', errors='replace')
            #other actions

我不能使用下面的代码,因为它只适用于二进制文件,但 csv 模块希望使用文本模式文件。仅处理 csv 文件的任何替代方法。

if not csv_file.name.endswith('.csv'):
    messages.error(request, 'THIS IS NOT A CSV FILE')

【问题讨论】:

    标签: django csv django-views django-forms file-handling


    【解决方案1】:

    取决于这需要有多安全。最简单的步骤就是限制上传 HTML 字段的扩展类型。

    <input type="file" accept=".csv" />
    

    显然,任何人都可以将扩展名命名为 .csv 以进行环游,但任何仅检查扩展名的解决方案都是这种情况。

    【讨论】:

      【解决方案2】:

      您可以检查是否有逗号,以及它们之间是否有任何单词。

      【讨论】:

      • 我想检查一个文件是不是 *.csv 文件
      猜你喜欢
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 2023-03-28
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多