【问题标题】:How to merge this functionality with argparse? [closed]如何将此功能与 argparse 合并? [关闭]
【发布时间】:2015-04-22 12:46:03
【问题描述】:

我有这个功能:

import codecs
from sklearn.feature_extraction.text import TfidfVectorizer
with codecs.open('/Users/user/Desktop/file.txt', encoding='utf-8') as f:
    spanish_stop_words = [line.strip() for line in f]
    print spanish_stop_words

from sklearn.feature_extraction import text
my_stop_words = text.ENGLISH_STOP_WORDS.union(spanish_stop_words)

tfidf_vect= TfidfVectorizer(stop_words=set(my_stop_words))

我一直在努力使用 argparse documentation,以便了解我可以在哪里调用上述“脚本”,但我不知道如何将它与 argparse 模块合并。另外我想在这一行询问用户的路径:

'/Users/user/Desktop/file.txt'

如何将其与简单的 argparse 架构合并?提前谢谢各位!

【问题讨论】:

  • argparse 不是脚本。它是一个帮助您编写命令行界面的模块。不如先试试tutorial
  • 当我提到“脚本”时,我不是在谈论 argparse。我说的是我之前的台词...
  • 对,但是要“合并”argparse 到其中,您仍然需要导入模块并使用它来创建命令行界面。本教程将向您展示如何操作。
  • @MartijnPieters 抱歉这个问题很糟糕......但我想现在有必要受到惩罚,我明白调用功能时发生了什么......相信我,我讨厌做这种问题...
  • 我没有为您的帖子投票,但文档并不那么难以理解,是吗?人们可能会觉得您还没有在这里完成研究。

标签: python python-2.7 command-line-arguments argparse


【解决方案1】:

这是与argparse tutorial 一起开始的最简单方法:

import argparse
import codecs
from sklearn.feature_extraction.text import TfidfVectorizer

parser = argparse.ArgumentParser()
parser.add_argument("stop_word_list", help="The stop word list")
args = parser.parse_args()

with codecs.open(args.stop_word_list, encoding='utf-8') as f:
    spanish_stop_words = [line.strip() for line in f]
    print spanish_stop_words

from sklearn.feature_extraction import text
my_stop_words = text.ENGLISH_STOP_WORDS.union(spanish_stop_words)

tfidf_vect = TfidfVectorizer(stop_words=set(my_stop_words))

使用python program.py 运行您的程序并打印:

% python program.py 
usage: program.py [-h] stop_word_list
program.py: error: too few arguments

如果提供1个参数,则将其作为文件作为停用词列表打开

% python program.py mystopwordfile.txt

【讨论】:

  • 感谢您的反馈,顺便说一句,我不知道 argparse 在哪里寻找所需的文件?这是在哪里发生的?
  • 感谢我正在阅读教程。
  • argparse 在任何地方都找不到您的文件,它只是在args.stop_word_list 中为您的脚本提供了一个文件名,该文件名被传递给codecs.open()
  • 哦...我明白了,谢谢!
猜你喜欢
  • 2017-10-01
  • 1970-01-01
  • 2021-10-23
  • 2017-02-12
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多