草庐IT

eval-stdin

全部标签

python - 将 STDIN 传递给一个本身被传递给 Python 解释器的脚本?

我需要实现一个SVN预提交Hook,它执行本身存储在SVN中的脚本。我可以使用svncat命令将该脚本通过管道传递给Python解释器,如下所示:svncatfile://$REPO/trunk/my_script.py|python---argument1--argument2但是,my_script.py本身需要将数据传输到STDIN。该数据未存储在文件中;它存储在网络上。我宁愿不必将数据下载到临时文件,因为通常我可以将其通过管道传输到Python程序:curlhttp://example.com/huge_file.txt|pythonmy_script.py我不确定如何组合这两

Python - 使用 map(sys.stdin.readline()) 存储一个字符串和一个 int

如果输入包含一个空格分隔的int行,比如-13我可以使用map()函数将其映射存储在数组中arr=map(int,sys.stdin.readline().split())或者甚至在两个独立的变量中,通过n,m=map(int,sys.stdin.readline().split())有没有办法用同样的方式读取包含混合数据类型的输入行。例如-foo3foo是字符串,3是整数? 最佳答案 如果你总是有一个字符串和非负整数:importsysn,m=map(lambdax:(str,int)[x.isdigit()](x),sys.st

python - 强制 python 脚本从 STDIN 获取输入

我需要运行的python脚本仅从作为命令行参数传递的文件获取输入,如下所示:$markdown.pyinput_file有没有办法让它接受来自STDIN的输入?我希望能够通过Bash执行此操作,而无需显着修改python脚本:$echo"Sometexthere"|markdown.py如果我必须修改Python脚本,我该怎么做?(编辑:Here是解析命令行选项的脚本。) 最佳答案 我不确定它的可移植性如何,但在Unix-y系统上你可以将/dev/stdin命名为你的文件:$echo-nhithere|wc/dev/stdin028

Python 的 json.load(sys.stdin) 让我用'...'代替字符串周围的双引号

当我这样做时:importsys,json;importrequestsheaders={'Content-Type':'application/json','X-Parse-Application-Id':'...','X-Parse-REST-API-Key':'...'}data=json.load(sys.stdin)forstationindata["data"]:printstationres=requests.post('https://api.parse.com/1/classes/test4',data=station,headers=headers)我明白了{u'c

python - 在 Python、MATLAB 等中使用 eval

这个问题在这里已经有了答案:Whyisusing'eval'abadpractice?(8个答案)关闭9年前。我知道不应该使用eval。出于所有显而易见的原因(性能、可维护性等)。我的问题更多-它有合法用途吗?应该在哪里使用它而不是以另一种方式实现代码。由于它以多种语言实现并且可能导致糟糕的编程风格,我认为它仍然可用是有原因的。

Python 使用 input() 逐行迭代 stdin

我正在尝试从控制台获取多个以换行符分隔的名称,并将它们放入一个变量中。假设我想永远从终端获取输入(稍后我将添加一些代码来跳出循环)。我知道如何使用while循环和递归来完成它,但我希望能够使用for循环来完成它。在下面的示例中,当我从终端输入"peter"时,我一次得到每个字母而不是整行:fornameininput():print(name)现在,如果我使用sys.stdin,name变量将变为"peter\n":fornameinsys.stdin:print(name)有没有一种简单的方法可以让input()给"name"整行而不是单个字符?或者只是由于使用forin的性质,我将

python - 如何使用 tf.estimator 返回预测和标签(使用 predict 或 eval 方法)?

我正在使用Tensorflow1.4。我创建了一个自定义的tf.estimator来进行分类,如下所示:defmodel_fn():#Someoperationshere[...]returntf.estimator.EstimatorSpec(mode=mode,predictions={"Preds":predictions},loss=cost,train_op=loss,eval_metric_ops=eval_metric_ops,training_hooks=[summary_hook])my_estimator=tf.estimator.Estimator(model_f

Python 的 eval() 和 globals()

我正在尝试使用eval()执行一些函数,我需要为它们创建某种运行环境。文档中说您可以将全局变量作为第二个参数传递给eval()。但在我的情况下似乎不起作用。这是简化的示例(我尝试了两种方法,声明变量全局和使用globals(),但两者都不起作用):文件script.py:importtestglobaltest_variabletest_variable='test_value'g=globals()g['test_variable']='test_value'eval('test.my_func()',g)文件test.py:defmy_func():globaltest_varia

python - Python中exec和eval的使用

所以我明白了exec和eval以及compile的作用。但为什么我需要使用它们?我不清楚使用场景。任何人都可以给我一些例子,以便我更好地理解这个概念。因为我知道这都是理论。 最佳答案 我将给出一个示例,其中我使用了eval并且我认为它是最佳选择。我正在编写一个简单的软件测试实用程序……用来测试学生的练习是否符合作业要求。目标是为一个简单的配置文件提供一种方法作为测试规范(解决使用编程语言描述/记录/实现基本编程任务的测试用例的“先有鸡还是先有蛋”的问题).我的工具基于标准库中的ConfigParser。但是,我确实希望能够表示任意P

python - 为什么 ast.literal_eval ('5 * 7' ) 失败了?

为什么5*7的文字计算失败,而5+7却没有?importastprint(ast.literal_eval('5+7'))#->12print(ast.literal_eval('5*7'))#->Traceback(mostrecentcalllast):...ValueError:malformednodeorstring:documentation不解释这个。我在SO上回答了这个问题后发现了这个问题:Gettingtheresultofastring. 最佳答案 ast.literal_eval()接受评估数据中的+因为5+2