精华内容
下载资源
问答
  • @数据挖掘 在一段python代码片段里调用另一python程序(或者代码片段) 概念说明

    python子进程:在一段Python程序(python代码段)中调用另一Python程序(python代码文件)

    一. 闲言多说

    在数据建模的生产部署阶段,有时候为了结果的实时性,我们需要实时调用模型文件进行结果输出。
    这里假定一个业务场景:
    某py代码片段的目标是进行房价预测,在代码片段中调用“模型预测.py”(作为子进程),根据输入参数由模型代码给出预测房价,当前代码片段获取模型预测输出,对其进行二次处理后生成json格式集返给下游处理环节。

    二. 主要function

    这里使用Python 标准库里的 subprocess.Popen() 类进行处理。
    常用的 os.system、os.spawn*、os.popen*、popen2*、commands.*等模块均可由subprocess模块替代。

    subprocess提供了一组启动子进程的方便的标准函数: subprocess.call()等

    	subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
    

    但是由于业务场景的复杂性,这种方便函数有时候不能很好的达到我们的目的,故而推荐使用: subprocess.Popen()

    2.1 Popen

    Popen class:在新的进程中执行子程序,它提供了比方便函数 subprocess.call()等更高的灵活性,方便覆盖更多的使用情景。

    	subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None,
    						preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, 
    						universal_newlines=False, startupinfo=None, creationflags=0)
    

    这里介绍其中几个关键参数:

    1. args: 待执行的程序(代码段),是一段字符串或者是程序及参数的序列,推荐使用序列的形式进行。
      	args: ['python', scripts_name.py, args_1, args_2, args_3, ..., args_n]
      
    2. stdout: 如果stdout=subprocess.PIPE,stdout作为一个文件对象存在,用于获得子进程的输出。如果stdout=None,stdout是None。stderr参数类似。

    介绍一个Popen class的methods:

    1. Popen.communicate(input=None): 等待进程终止后,从Popen的stdout和stderr读取数据,获取文件从头到末尾的所有输出。可选 input 参数是要发送给子进程的字符串,如果不发送数据给子进程,则将其置为None。
      如果要读取数据,需要将:stderr 和 stdout的值置为:subprocess.PIPE
      如果要传入数据,需要将:stdin的值置为:subprocess.PIPE
      返回值为:tuple, (stdout, stderr)

       注:communicate()读取成功的数据会被缓存在内存中,所以当需要读取的数据太大,慎用此方法。
       	本案例中,要读取数据量很小,所以采用了这种方法。
      
       注:使用communicate() 替代 stdout.read() or stdout.readlines() 可以避免由于其它OS pipe缓冲区被填满并阻塞子进程而导致的死锁。
      

    三. code

    3.1 假定子进程文件(代码)如下(sys_test_map.py):

    testmap = {}
    testmap['name'] = 'zhangsan'
    testmap['age'] = 18
    testmap['edu'] = {'school': 'college', 'year': 2018}
    
    print testmap
    
    a = {
    	u'beijing': 0.99892587165634505, 
    	u'shanghai': 0.0014163851986520321, 
    	u'shenzhen': 0.9990925714738389, 
    	u'tianjin': 0.00020464026986137315, 
    	u'hegang': 0.99917447530410486}
    
    print a
    
    

    上述代码片段会输出两个dict,这两个dict,将会被我用communicate()方法获取到。

    3.2 母程序代码如下:

    import os
    import sys
    import subprocess
    from pprint import pprint
    
    # 创建子进程
    subp = subprocess.Popen(['python', os.path.join(os.getcwd(), 'sys_test_map.py')], 
    						stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    
    # 获取Popen.communicate(), return tuple(stdout, stderr)
    cmnce = subp.communicate()
    print 'the value of cmnce is: ', pprint(cmnce)
    
    subprocess_stdout = cmnce[0].strip('\n')
    subprocess_stderr = cmnce[1].strip('\n')
    
    # 将子进程的最后一个输出激活成特定的object
    result_dict = eval(str(subprocess_stdout.split('\n')[-1]))
    print type(result_dict)
    pprint(result_dict)
    
    

    程序执行结果:

    1.从子进程获取的值(communicate() return):

    the value of cmnce is: 
    ("{'age': 18, 'name': 'zhangsan', 'edu': {'school': 'college', 'year': 2018}}\r\n
    {u'tianjin': 0.00020464026986137315, 
    u'beijing': 0.998925871656345, 
    u'shanghai': 0.0014163851986520321, 
    u'hegang': 0.9991744753041049, 
    u'shenzhen': 0.9990925714738389}\r\n",
    '')  
    
    对象类型为: <type 'tuple'>
    

    1.1 其中stdout值:

    "{'age': 18, 'name': 'zhangsan', 'edu': {'school': 'college', 'year': 2018}}\r\n
    {u'tianjin': 0.00020464026986137315, u'beijing': 0.998925871656345, u'shanghai': 0.0014163851986520321, u'hegang': 0.9991744753041049, u'shenzhen': 0.9990925714738389}\r\n"
    

    1.2 其中stderr值:

    当未发生error时,返回None
    

    2.eval()后的函数对象:

    • 对象类型:

        <type 'dict'>
      
    • dict对象值:

        {
        u'beijing': 0.998925871656345,
        u'hegang': 0.9991744753041049,
        u'shanghai': 0.0014163851986520321,
        u'shenzhen': 0.9990925714738389,
        u'tianjin': 0.00020464026986137315
        }
      

    3.3 总结

    subprocess.Popen()可以很好的实现py代码中子进程的启动并获取子进程返回值

    四. 写在最后

    笔者还是菜鸟一枚,不敢高谈教化,只求将自己的理解能解释清楚。
    读到此处的您,如果我的理解对解答您的问题有所帮助,那我将是很开心的。
    能力一般,水平有限,可优化的地方千千…请指正!

    祝好!

    展开全文
  • 在visual studio 2017编写python首先需要在vs中安装python工具,具体操作在我的上篇博客中有介绍如何在visual studio 2017 中安装python工具 本人电脑安装的是python3.6.6,下面先介绍如何建立个项目 打开visual...

    在visual studio 2017编写python首先需要在vs中安装python工具,具体操作在我的上一篇博客中有介绍如何在visual studio 2017 中安装python工具
    本人电脑安装的是python3.6.6,下面先介绍如何建立一个项目

    打开visual studio左上角依次点击(文件)➡(新建)➡(项目)

    在这里插入图片描述

    打开以后找到并点开我们已经安装好的一栏➡点击web➡web项目,下面的菜单里可以添加文件名称以及文件保存的位置

    在这里插入图片描述

    新建之后在右边会出现解决方案资源管理器(根据窗口布局不同可能位置会有出入,如果没有的话可以在菜单栏➡视图➡解决方案资源管理器,或者直接快捷键Ctrl+Alt+L就会出现),之后右键点击自己设置的项目名称(我的叫web Project1)➡添加➡新建项;快捷键Ctrl+Shift+A。

    对于像我这种的新手来说的话环境什么是不用自己调试的,直接用标准的就好了,熟悉了之后可以使用别人的库来编写程序,python的强大之处应该就在于这里
    在这里插入图片描述
    在这里插入图片描述

    选择空python文件,下面设置文件的名称,之后点击添加,然后就会出现一个空白的窗口,这个就是我们输入代码的地方

    在这里插入图片描述

    直接输入print(“hello world”)之右键点击我们刚才输入代码的文件,将其设置为启动文件,之后按Ctrl+F5调试并运行,就会屏幕上就会出现hello world这段话

    相比较C++语言来说python编写代码较为简洁,就上面的功能来说C++需要建立头文件,main函数,返回值,注意分号,代码缩进看起来简洁……下面是C++的代码,还有要说明的是"与’符号在python中作为收纳字符串使用是没有区别的

    include<iostream>
    using namespace std
    int mian
    {
    cout<<"hello world";
    return 0;
    }
    

    在这里插入图片描述
    在这里插入图片描述
    我是python新手,如果这篇文章有什么不对的地方欢迎留言指正

    展开全文
  • 就是类似个在线的python代码编辑器。 将代码传到服务器端执行,并且显示执行结果。 服务器端的开发用的也是python代码,求教我该如何执行这代码并且获得执行结果呢? 比如说传到服务器的代码是: *** print...
  • <pre name="code" class="python">def cos(vector1,vector2): dot_product = 0.0 normA = 0.0 normB = 0.0 for a,b in zip(vector1,vector2): dot_product += a*b normA += a**2 normB += b**2 if normA == ...
    <pre name="code" class="python">def cos(vector1,vector2):
        dot_product = 0.0
        normA = 0.0
        normB = 0.0
        for a,b in zip(vector1,vector2):
            dot_product += a*b
            normA += a**2
            normB += b**2
        if normA == 0.0 or normB==0.0:
            return None
        else:
            return dot_product / ((normA*normB)**0.5)
    


     
    

    展开全文
  • python简单代码大全-python代码大全

    千次阅读 2020-11-01 13:20:52
    我们可以从互联网找一些python做数据可视化的代码进行阅读,调试和迁移。 这样做的好处,突出实用性。 同时,我们在结合联想的学习方法,对所用到的可视化函数,做个更深入地了解和使用。 我借用《数据科学和人工...

    o55g08d9dv.jpg广告关闭

    腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元!

    例如:想了解python做数据可视化的工作。 我们可以从互联网找一些python做数据可视化的代码进行阅读,调试和迁移。 这样做的好处,突出实用性。 同时,我们在结合联想的学习方法,对所用到的可视化函数,做个更深入地了解和使用。 我借用《数据科学和人工智能》这个公众号,分享一些我在实际的数据问题时,从网上找到...

    举个例子,开发和维护数据分析的pipeline可以说的上是生信工程师的日常了,对于这样一个需要长期维护的项目而言,在开发阶段,遵循统一的代码规范,可以将任务拆分,分配给团队的不同人员进行开发,提高效率; 在后期的维护中,也可以交由不同的人来进行维护。 这一切的基础就是统一的代码规范,对于python而言,官方...

    一定要注重代码规范,按照平时的代码管理,可以将python代码规范检测分为两种:静态本地检测:可以借助静态检查工具,比如:flake8,pylint等,调研了一下,用flake8的相对较多,功能满足,本文将使用flake8git:可借助git hooks,本文推荐使用pre-commit。 静态本地检测flake8包装了pyflakes、pycodestyle和mccabe...

    jfndvww3nq.png

    黑客帝国的特效:使用python来模拟下这个效果. 运行前需要安装pygame库。 pygame库的安装参考文章:python pygame安装实战代码:# -*- coding:utf-8-*- import randomimport pygamefrom pygame.locals import *from sys importexit # 屏幕大小screen_width=700screen_height=400# 字体数目rain_num = 30#字体大小font...

    vd879irzg3.png

    python代码找bug(9)上期的代码设计需求:有5个人坐在一起,问第五个人多少岁? 他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。 问第三个人,又说比第2人大两岁。 问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。 请问第五个人多大? 要求使用递归算法计算。 代码如下:? 请大家仔细阅读...

    s6oxhb3hp0.png

    python代码找bug(8)上期的代码设计需求:利用递归算法求5! 代码如下:? 请大家仔细阅读代码,找出其中的bug! 正确答案:共有3个bug。 (对答案时间,看看答对了几个?)(1)if语句是一个条件判断语句,它后面紧跟的当然应该是一个比较算式,而不是一个赋值语句,所以if j=0应改为:if j == 0。 (2)第二个还是...

    1b5e6wex76.png

    python代码找bug(7)上期的代码设计需求猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个; 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 代码如下:? 请大家...

    m52jfy96c8.png

    python代码找bug(6)上期的代码设计需求:一球从100米高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? 代码如下:? 请大家仔细阅读代码,找出其中的bug! 正确答案:共有2个bug。 (对答案时间,看看答对了几个?)(1)还是range()方法的参数问题...

    awjbbegehn.png

    我最近跟一个朋友聊 python,就发现这样的一个有趣的特点,很多写python代码的朋友都有这样一个习惯,大家很自然爱把一个重复序列的行为先记录在一个列表数据里,然后,你需要它里面的哪一项,随时方便拿给你。 而不是向我们惯常的做法,通过循环,代码在计算以后直接获取最后想要的结果,而忽略中间状态的数据...

    30o8c2hduk.png

    python代码找bug(4)上期的代码设计需求:请输出 9*9 乘法口诀表。 代码如下:? 请大家仔细阅读代码,找出其中的bug! 正确答案:共有3个bug。 (对答案时间,看看答对几个了?)(1)首先,第一个for循环,还是range()的参数问题,它的第二个参数表示数字序列取值到它前面(比它小1)的那一个,既然是9*9乘法口诀表...

    si44aug3bg.png

    python代码找bug(3)上期的代码设计需求:企业发放的奖金根据利润提成。 发放标准是利润:(1)低于或等于10万元时,奖金可提10%; (2)10万-20万时,高于10万元的部分,可提成7.5%; (3)20万-40万时,高于20万元的部分,可提成5%; (4)40万-60万时,高于40万元的部分,可提成3%; (5)60万-100万时,高于60万...

    s4mdrwxxxv.png

    python代码找bug(2)上期的代码设计需求:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数? 各是多少?? 请大家仔细阅读代码,找出其中的bug! 答案:共有5个bug。 (赶紧对下自己的答案,是不是全对了呢? (1)三个for循环迭代的range的参数应该是(1,5),这样才能循环1-4次嘛; (2)if( i != ...

    25xno79r41.png

    python代码找bug(1)代码设计需求:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数? 各是多少?? 请大家仔细阅读代码,找出其中的bug! 到底有几个bug呢? 3个?4个?5个? 分别在哪呢? 答案明天揭晓。 提醒:所有代码都是基于pythpn3 的哦...

    zb4lubqbs.png

    python代码找bug(10)上期的代码设计需求:两个 3 行 3 列的矩阵:x = , , ]y = , ,请实现其对应位置的数据相加,并返回一个新矩阵。 代码如下:? 请大家仔细阅读代码,找出其中的bug! 正确答案:共有2个问题。 (对答案时间,看看答对了几个?)(1)一个是真正的bug。 请注意range()方法的参数,此处不仅是希望以...

    huffman编码以根节点到叶子节点的路径来编码的,左为0,右为1? 1.1huffman编码示意图由这个huffman树得出得huffman编码为:a011,b100,c0001,d00001,e11,f101,g000000,h0010,i010,j0011,k000001。 2.代码思路用python实现这个需要注意两点, 一是根据叶子节点的权值也就是编码字母的值来反向建立huffman树。 二是通过...

    ozc6mg834e.png

    python代码找bug(12)上期的代码设计需求:生成 10 到 20 之间的随机数。 代码如下:? 请大家仔细阅读代码,找出其中的bug! 正确答案:共有2个问题。 (1)random是python3标准库中的一个模块,引用时,只需直接使用import关键词导入即可。 如果使用了from关键字,则应与import结合起来使用。 (2)另一个错误是...

    di9aca5dl4.jpeg

    为了让代码显得整齐干净,就需要把一行代码分成多行来写,python中有三种小技巧可以实现该功能:1. 用反斜杠链接多行代码示例:? 2.用小括号括起来示例:? 3、针对较长字符串分成多行书写的还有一种简单的方法:用三个单引号,但是该方法只针对字符串有用。 示例:?...

    让我们开始:首先,为了能够使用cython,我们必须运行:%load_ext cython现在,每当我们想在代码单元中运行cython时,我们必须首先将以下magic命令放入单元格:%%cython完成这些之后,就可以开始编写cython代码了。 cython可以跑多快与普通python代码相比,cython的速度快多少实际上取决于代码本身。 例如,如果您正在...

    dpb1dn7zb1.png

    非常感谢我们的忠实读者 shendeguize,在后台留言告诉我,已经翻译了《谷歌python代码风格指南》 ,大家这样相互帮助,感觉真是太好。 update: 2020. 01.31translator: shendeguize@githublink:https: github.comshendeguizegooglepythonstyleguidecn本翻译囿于水平,可能有不准确的地方,欢迎指出,谢谢大家如有引用...

    github.comshendeguizegooglepythonstyleguidecn 本翻译囿于水平,可能有不准确的地方,欢迎指出,谢谢大家 如有引用,请注明出处 1 背景 python是谷歌主要是用的动态语言,本风格指导列举了使用python编程时应该做和不该做的事项(dos & donts)为了帮助你正确地组织代码,我们编写了一个vim的设置文件. 对于emacs,默认...

    展开全文
  • 请写出一段 python 代码实现删除一个 list 里面的重复元素 方法一:利用set集合实现 info = [2017,1,16,9,2017,1,16,9] result = list(set(info)) print(result) result.sort(key=info.index) print(result) ...
  • ※ 用代码执行指定python程序 本文主要介绍简单的小知识,即利用代码去执行所有你所写好的代码程序。 直接开工! import os os.system("python 执行的代码路径") 只需要这两行代码就可以直接运行指定...
  • 【题目】如何在python代码中调用另个函数的代码   概述  在编写代码时,通常情况下,我们都需要在个文件中调用另外个文件的函数呀数据等等,总之要操作其他文件中的代码 在python中,不同的代码文件...
  • Python简单游戏代码

    万次阅读 多人点赞 2018-07-20 23:46:07
    本人新人枚,第次在CSDN上写博客,代码不难,主要是混个积分。 代码 如下 import pygame,sys,random from pygame.locals import * #定义颜色变量 目标方块的颜色 redColor = pygame.Color(250,0,0) #贪吃蛇的...
  • python简单绘图代码-python绘图代码

    千次阅读 2020-10-30 22:46:32
    本文作者用简单明了的语言解释了三日k线的交易原则,也分享了如何用python绘制k线图的方法和代码。 关于日本k线交易据说日本人在十七世纪就已经运用技术分析的方法进行大米交易,位名叫本间宗久的坂田大米贸易商...
  • 30极简Python代码:这些小技巧你都Get了吗?

    万次阅读 多人点赞 2021-01-26 22:30:21
    本文同样也是 30 段代码Python 开发者也可以看看是不是有没想到的用法。 选自towardsdatascience,作者:Fatos Morina,机器之心编译,参与:思源。 Python 是机器学习最广泛采用的编程语言,它最重要的...
  • 如何用安卓手机运行Python代码

    万次阅读 多人点赞 2021-04-15 22:44:03
      天天都在PC端运行Python代码的我,今天突然灵光现,想着是不是能够在移动端运行Python代码呢?如果能够实现的话,家里的废旧手机就有用武之地了。 2. 安装环境 2.1 安装APK   根据搜索和调研,需要安装以下...
  • def main(): fn = open(file_name, 'rb') parser = PDFParser(fn) doc = PDFDocument() parser.set_document(doc) doc.set_parser(parser) resource = PDFResourceManager() laparams = LAParams() ...
  • 不要害怕学习的过程枯燥无味,这里有程序员jackzhenguo打造的份中文Python“糖果包”:147个代码小样,60秒口,营养又好玩,从Python基础到机器学习尽皆囊括。 入门简单如十进制转二进制,尽显Python简洁之美:...
  • BMI指数(即身体质量指数,简称体质指数又称体重,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的个标准。主要用于统计用途,...
  • 30行python代码实现微信自动陪女盆友聊天

    万次阅读 多人点赞 2020-09-11 09:45:29
    上班没时间回女朋友,30行py代码做个微信聊天机器人自动陪聊 视频地址:https://www.bilibili.com/video/BV1sT4y1A7fH/ 依赖库: requests(人性化的http请求库) itchat(网页微信接口库) 直接贴代码: # -*- ...
  • list(set(aa)) 可是python2.7中的list()不能用囧~
  • num8 = input("请输入:") for i in range(len(num8)): if ord(num8[i]) &gt;= 97 and ord(num8[i]) &lt;= 122: ... print(chr(ord(num8[i]) - 32),end = "...= 65 and ord(num8[...
  • 今天看到一道有趣的面试题,用python实现一段代码,然后将自己打印,其实很简单 import sys 首先导入 sys 模块 f_name = sys.argv[0] sys.argv[ ]第一个元素是程序本身,sys.argv[0] 表示本身的文件路径 然后...
  • python—做个恶搞程序very easyprint("You can"t win this game") #你不可能赢这个游戏n = int(input("Between 1 and 10 type a number(integer)")) #在1到10之间写个数字(整数)...
  • 几年前,个replace("?","")代码价值个亿 如今,在Python中...今天,我使用gtts和speech_recognition,教大家如何通过三十行代码,打造简单的人工语音对话。思路就是将语音变成文本,然后文本变成语音。
  • 方法1:使用set函数,s=set(list),然后再list(s).方法2:使用字典函数: a=[1,2,4,2,4,5,6,5,7,8,9,0] b={} b=b.fromkeys(a) c=list(b.keys()) print('去重后的list为:',c)方法3:appenddef delList(L): ...
  • python中如果做到一段程序在同时运行两个代码块 例如:一个小游戏在运行另一段代码在 计时,时间一到游戏代码就会终止。这样的情况如何实现
  • 女友半夜加班发自拍 python男友用30行代码发现惊天秘密
  • 文章目录Python - 同一段代码运行了两次,如何解决1、情况2、如何解决 Python - 同一段代码运行了两次,如何解决 1、情况 from src import request request.post('/api/project/search/1/10', { 'name': 'hello' ...
  • python常用代码大全-python代码大全

    千次阅读 2020-10-29 14:57:37
    我们可以从互联网找一些python做数据可视化的代码进行阅读,调试和迁移。 这样做的好处,突出实用性。 同时,我们在结合联想的学习方法,对所用到的可视化函数,做个更深入地了解和使用。 我借用《数据科学和人工...
  • 今天小编就为大家分享篇关于Python代码实现删除个list里面重复元素的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 网上学习了的两个新方法,代码非常之...
  • &#13; &#13; &#13; &#13; &#13; &#13; &#13; 代码可读性是评判代码质量的标准之,有个衡量代码质量的标准是 Martin 提出的 “WFT” 定...
  • Python 时间函数 - 计算某一段代码的运行时间 我们有时候需要使用 Python 的时间函数,去计算某一段代码的运行时间,本文给出方法的介绍。 适用于 Python3.6 引入 time 模块 首先,我们需要引入 time 模块。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 410,041
精华内容 164,016
关键字:

一段简单的python代码

python 订阅