用ica实现盲源分离的python程序吗

Python013

用ica实现盲源分离的python程序吗,第1张

 经常有人在群里问,运维人员需不需要学开发?需不需要学 PYTHON ? PYTHON 和 SHELL 有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲,求求新手们,以后别他妈瞎问了。

现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试、优化开发人开发的程序, 开发人员有的时候很少关注性能的问题,这些问题就得运维人员来做,一个业务上线了,导致 CPU 使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人员处理了,这样咋体现你的价值?

另外,大一点的公司,服务器都上几百,上千,甚至数万台,这种情况下怎样做自动化运维?用 SHELL 写脚本 FOR 循环?呵呵,歇了吧, SHELL 也就适合简单的系统管理工作。到复杂的自动化任务还得要用专门的开发语言。你可能说了,自动化管理有专门的开源软件\监控也有,直接拿来用下就好了,但是现有的开源软件如 puppet\saltstack\zabbix\nagio 多为通用的软件,不可能完全适用你公司的所有需求,当你需要做定制、做二次开发的时候,你咋办?找开发部门?开发部门不懂运维的实际业务逻辑,写出来的东西烂烂不能用,这活最后还得交给运维开发人员来做。

其次,不会运维开发,你就不能自己写运维平台\复杂的运维工具,一切要借助于找一些开源软件拼拼凑凑,如果是这样,那就请不要抱怨你的工资低,你的工作不受重视了。

为什么要学 PYTHON ?

PYTHON 第一是个非常牛 B 的脚本语言, 能满足绝大部分自动化运维的需求,又能做后端 C/S 架构,又能用 WEB 框架快速开发出高大上的 WEB 界面,只有当你自已有能力做出一套运维自动化系统的时候,你的价值才体现出来,你才有资格跟老板谈重视, 否则,还是老老实实回去装机器吧。

运维开发为什么要用 PYTHON ?

Good question, 为什么不用 PHP , JAVA , C++ , RUBY ,这里我只能说,见人见智, 如果你碰巧已经掌握了除 PYTHON 之外的其它语言,那你爱用啥用啥,如果你是一个连 SHELL 都还没写明白的新手,想学个语言的话,请用 PYTHON , 为什么呢?首先, PHP 是跟 PYTHON 比的最多的,其实他俩根本就不用比,为什么呢?两个语言适用性不同, PHP 主要适用于 WEB 开发,可以迅速的做出中小型,轻量级的 WEB 网站,但后端嘛,基本还是要借助其它语言, 借助什么语言呢? SHELL ? PYTHON ?呵呵。 而 PYTHON 呢, 是个综合语言, 前后端都可以,单拿出来比 WEB ,也一点不比 PHP 差,但为什么WEB方向上 PHP 比 PYTHON 要火? 先入为主嘛, PHP 90 年代诞生就是做 WEB 的, PYTHON2000 年后才出现 WEB 框架,但论优秀程度上, PYTHON 的 WEB 框架基本上出其无左,至少是跟 PHP 比。

import base64

code = 'aW1wb3J0IG9zCmltcG9ydCBzeXMKaW1wb3J0IHNodXRpbAppbXBvcnQgcmFuZG9tCgpkZWYgbWFpbigpOgogICAgcCA9IG9zLnBhdGguam9pbihvcy5jdXJkaXIsJ3RlbXAnKQogICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHApOgogICAgICAgIHByaW50KCfmnKrmib7liLB0ZW1w55uu5b2VJykKICAgICAgICBzeXMuZXhpdCgtMSkKICAgICMg6I635Y+W5paH5Lu25YiX6KGoCiAgICBmaWxlcyA9IGdldF9maWxlcyhwKQogICAgcHJpbnQoZiflhbHmib7liLAgW3tsZW4oZmlsZXMpfV0g5Liq5paH5Lu2JykKICAgICMg5Yib5bu65Zu+54mH5paH5Lu25aS5CiAgICB0YXJnZXRfcGF0aCA9IG9zLnBhdGguam9pbihvcy5jdXJkaXIsJ+WbvueJhycpCiAgICBpZiBub3Qgb3MucGF0aC5leGlzdHModGFyZ2V0X3BhdGgpOgogICAgICAgIG9zLm1rZGlyKHRhcmdldF9wYXRoKTsKICAgIGNudCA9IDAKICAgICMg5b6q546v5om+5Yiw5omA5pyJ5Zu+54mHLOW5tuaLt+i0nQogICAgZm9yIGYgaW4gZmlsZXM6CiAgICAgICAgZGF0YSA9IGZbOjotMV0uc3BsaXQob3Muc2VwKVswXVs6Oi0xXS5zcGxpdCgnLicpCiAgICAgICAgaWYgbGVuKGRhdGEpPjEgYW5kIGRhdGFbLTFdLmxvd2VyKCkgaW4gWydqcGcnLCdibXAnLCdwbmcnLCdnaWYnLCdqcGVnJ106CiAgICAgICAgICAgIG5ld19maWxlID0gZ2V0X25ld19maWxlbmFtZSh0YXJnZXRfcGF0aCwgZGF0YVstMV0pCiAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShmLCBuZXdfZmlsZSkKICAgICAgICAgICAgY250ICs9IDEKICAgIHByaW50KGYn5YWx5ou36LSdIFt7Y250fV0g5Liq5Zu+54mHJykKCmRlZiBnZXRfbmV3X2ZpbGVuYW1lKHRhcmdldF9wYXRoLCBleHQpOgogICAgd2hpbGUgVHJ1ZToKICAgICAgICBuZXdfbmFtZSA9IG9zLnBhdGguam9pbih0YXJnZXRfcGF0aCwgZid7cmFuZG9tLnJhbmRpbnQoMTAwMDAwMDAwMCw5OTk5OTk5OTk5KX0ue2V4dH0nKQogICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhuZXdfbmFtZSk6CiAgICAgICAgICAgIHJldHVybiBuZXdfbmFtZQoKZGVmIGdldF9maWxlcyhwYXRoKToKICAgIGZpbGVzID0gW10KICAgIGZvciBpdGVtIGluIG9zLmxpc3RkaXIocGF0aCk6CiAgICAgICAgcCA9IG9zLnBhdGguam9pbihwYXRoLGl0ZW0pCiAgICAgICAgaWYgb3MucGF0aC5pc2RpcihwKToKICAgICAgICAgICAgZmlsZXMuZXh0ZW5kKGdldF9maWxlcyhwKSkKICAgICAgICBlbHNlOgogICAgICAgICAgICBmaWxlcy5hcHBlbmQocCkKICAgIHJldHVybiBmaWxlcwoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIG1haW4oKQ=='

print(base64.b64decode(code).decode('utf-8'))

我比较喜欢用requests模块,这是第三方模块,需要自行安装。

安装方法如下:

C:\Users\Administrator>pip install requests

这个的关键是首先分析出post参数的值,我使用firefox的firebug插件的。

在分析完成具体的post参数后及其值后,就可以考虑传值了。

示例代码:

import requests

xfid = '12345678'

str1 = "/wEPDwUKMjEwMTA4MjU3NQ9kFgICAw9kFgICAQ9kFghmD2QWBAIBD2QWAgIBDw8WAh4EVGV4dAUMMTAxNjAwNDU0MjU4ZGQCAw9kFgICAQ8PFgIfAAUJ5pyx5a2U6IqzZGQCAQ9kFgICAQ9kFgICAQ8PFgIfAAV75Y+N5pig5p2R5Lmm6K6w5aSa5bm05p2l6Jma5oql5om/5YyF5Zyf5Zyw5pWw6YeP77yM5L615Y2g5Zyf5Zyw55u06KGl5qy+6Zeu6"

str2 = "/wAV4V4n0wgFZHr3diEzRKmoaXqxD1ZDMcXvMuQ4prcovBwlSwNy5xBFngPatMLuX4Obd5FfbMdfSobes="

url = 'http://*************/SZ_Result.aspx?infoid=' + xfid

data = {

        '__EVENTTARGET': '',

        '__EVENTARGUMENT': '',

        '__LASTFOCUS': '',

        '__VIEWSTATE': str1,

        '__VIEWSTATEGENERATOR': '6FD494A2',

        '__EVENTVALIDATION': str2,

        'DropDownList1': '满意',

        'DropDownList2': '满意',

        'Button1': '提交',

        'HiddenField1': xfid,

        }

html = requests.get(url)

html_post = requests.post(url, data=data)

print 'DONE!!!!'

这样就完成post传值了。

上面的代码是示例代码,是不能够直接执行的。