根据 python 中的文件扩展名以编程方式确定编程语言
Programmatically determining programming languages based on file extensions in python
如果我有一组使用多种不同语言的随机文件(源代码),是否有库或 API 我可以将每个文件的文件扩展名传递给以确定该文件适用于哪种语言,所以我可以根据语言类型组织这些文件?
(我需要知道我不能只按文件扩展名排序的语言)
使用一些模块,识别此文件的 mime 类型。
您也可以按脚本中的第一行对其进行排序
(例如 #!/bin/python
、#!/bin/sh
、...),如果使用它。
我最终使用 this JSON 翻译版本的 Github 的 Linguist YAML 映射,作为一个 NPM 包,导入它并在一组上进行字典查找地图,对于任何感兴趣的人来说,这是我的解决方案中相关的部分:
language_results = list(map(
lambda file_args: file_args[0] if file_extension in list(map(
lambda i: i, file_args[1].get("extensions", []))) else None, language_map.items()))
language_results = list(filter(None, language_results))
return language_results[0] if len(language_results) > 0 else None
如果我有一组使用多种不同语言的随机文件(源代码),是否有库或 API 我可以将每个文件的文件扩展名传递给以确定该文件适用于哪种语言,所以我可以根据语言类型组织这些文件? (我需要知道我不能只按文件扩展名排序的语言)
使用一些模块,识别此文件的 mime 类型。
您也可以按脚本中的第一行对其进行排序
(例如 #!/bin/python
、#!/bin/sh
、...),如果使用它。
我最终使用 this JSON 翻译版本的 Github 的 Linguist YAML 映射,作为一个 NPM 包,导入它并在一组上进行字典查找地图,对于任何感兴趣的人来说,这是我的解决方案中相关的部分:
language_results = list(map(
lambda file_args: file_args[0] if file_extension in list(map(
lambda i: i, file_args[1].get("extensions", []))) else None, language_map.items()))
language_results = list(filter(None, language_results))
return language_results[0] if len(language_results) > 0 else None