pythonstdin_Python从Stdin读取参数
您的preprocess.py文件正在尝试读取sys.argv [1]表单并将其作为文件打开.
如果将-h传递给命令行,则会尝试使用该名称打开文件.
拆分命令行解析处理
您的预处理函数不关心命令行参数,它应该将打开的文件描述符作为参数.
因此,在解析命令行参数之后,您应该注意提供文件描述符,在您的情况下它将是sys.stdin.
使用docopt的示例解决方案
argparse没有任何问题,我最喜欢的解析器是docopt,我将用它来说明命令行解析的典型拆分,准备最终函数调用和最终函数调用.您也可以使用argparse实现相同的功能.
首先安装docopt:
$pip install docopt
这是fromstdin.py代码:
"""fromstdin - Training and Testing Framework
Usage: fromstdin.py [options]
Options:
--text= Text model [default: text.txt]
--features= Features model [default: features.txt]
--test= Testing set [default: testset.txt]
--vectorizer= The vectorizec [default: vector.txt]
Read data from file. Use "-" for reading from stdin.
"""
import sys
def main(fname, text, features, test, vectorizer):
if fname == "-":
f = sys.stdin
else:
f = open(fname)
process(f, text, features, test, vectorizer)
print "main func done"
def process(f, text, features, test, vectorizer):
print "processing"
print "input parameters", text, features, test, vectorizer
print "reading input stream"
for line in f:
print line.strip("
")
print "processing done"
if __name__ == "__main__":
from docopt import docopt
args = docopt(__doc__)
print args
infile = args[""]
textfile = args["--text"]
featuresfile = args["--features"]
testfile = args["--test"]
vectorizer = args["--vectorizer"]
main(infile, textfile, featuresfile, testfile, vectorizer)
可以这样称呼:
$python fromstdin.py
Usage: fromstdin.py [options]
显示帮助:
$python fromstdin.py -h
fromstdin - Training and Testing Framework
Usage: fromstdin.py [options]
Options:
--text= Text model [default: text.txt]
--features= Features model [default: features.txt]
--test= Testing set [default: testset.txt]
--vectorizer= The vectorizec [default: vector.txt]
Read data from file. Use "-" for reading from stdin.
使用它,从stdin喂养:
(so)javl@zen:~/sandbox/so/cmd$ls | python fromstdin.py -
{'--features': 'features.txt',
'--test': 'testset.txt',
'--text': 'text.txt',
'--vectorizer': 'vector.txt',
'': '-'}
processing
input parameters text.txt features.txt testset.txt vector.txt
reading input stream
bcmd.py
callit.py
fromstdin.py
scrmodule.py
processing done
main func done
pythonstdin_Python从Stdin读取参数相关推荐
- 如何在Python中从stdin读取
There are three ways to read data from stdin in Python. 在Python中,有三种方法可以从stdin读取数据. sys.stdinsys.std ...
- Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)
1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...
- Python解析命令行读取参数 -- argparse模块
在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...
- linux写参数文件,linux下纯C++读取参数配置文件
微软把程序猿养懒了.如果你在windows里写程序,那么本文你可以不看,有GetPrivateProfileString等来读取:如果你在qt里写程序,那么本文也可以不看.如果你在linux或者mac ...
- python 命令行解析模块_Python解析命令行读取参数 -- argparse模块
在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数.万能的python就自带了argprase包使得这一工作变得简单而规范.PS:optparse包是类似的功能,只不过写 ...
- 为什么在C ++中从stdin读取行比Python慢得多?
我想比较使用com/thread-373690-1-1.html'>Python和C ++从stdin读取的字符串输入的行数,并震惊地看到我的C ++代码运行速度比等效的Python代码慢一个数 ...
- java从配置文件中读取参数
java从配置文件中读取参数的方式 有的时候我们需要将一些固定的配置信息写到yml文件中去,然后在类中在读取 #首先就得先在yml文件中配置参数 upload:param:"test&quo ...
- 分区 读取参数错误_如何修复“警告:重新读取分区表失败,错误22:参数无效”在Linux上错误...
分区 读取参数错误 If you are getting the following error while trying to change the default fat32 partition ...
- C++:从json文件中读取参数/创建文件夹/位拼接
目录 1.从json文件中读取参数 2.创建文件夹 3.位运算拼接 1.从json文件中读取参数 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml ...
最新文章
- elasticdump安装_elasticsearch导出、导入工具-elasticdump
- 多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记
- 相关滤波跟踪(MOSSE)
- foreach ($cc as $key = $item);$item加与不加的区别
- [转载][记录]javascript生成不重复的随机数
- rubymine 保存成unix格式_如何免费在线试用 200+ Linux 和 Unix 发行版?
- 计划的执行与回顾的重要性与必要性
- 项目实训第二周(车道线检测)
- [转]Linux统计代码行数
- 近代物理实验 核磁共振的稳态吸收(含数据及参考题)
- DHCP动态获取IP地址流程
- NOIP2011提高组初赛不定项选择第5题
- mac加密_如何加密Mac的Time Machine备份
- UNIAPP/微信小程序-下拉刷新的操作
- 使用MMDetection训练自己的数据集
- I2C总线的SDA和SCL
- 博瑞云音箱云喇叭开发文档API接口文档开发指南(21-12-20)
- linux系列之-jar包文件替换
- 2020年春节复工后的十大高薪职业,IT技术岗榜上有名!
- tcgames玩绝地求生类手机游戏鼠标失灵和不能扔手雷问题看这里
热门文章
- zero ecilpse下载_推荐10个免费图片下载网站,助你摆脱找图烦恼!建议收藏
- 没有富士康?外媒称苹果新款iPhone SE由和硕独家组装
- NBA过上中国年 用五福福卡为球迷送祝福
- 自如:全额承担“望京跑路二房东”受害客户损失,预计约500余万元
- 百度Apollo开通上海自动驾驶示范路线 落地第5城
- 这届年轻人,连泡面也买不起了
- 罗永浩直播间再回应直播售假:全方位整改 成立质控实验室
- 阿里文娱再调整:李捷出任阿里影业总裁,戴玮任文娱COO
- iPhone 12的尺寸有变化:可能比新款iPhone SE还小
- 微信又上线了新功能,聊天再也不会发错群了?