小编Dee*_*epa的帖子

Python:正则表达式

我使用python正则表达式从给定的字符串中提取某些值.这是我的字符串:

mystring.txt

sometext
somemore    text here

some  other text

              course: course1
Id              Name                marks
____________________________________________________
1               student1            65
2               student2            75
3               MyName              69
4               student4            43

              course: course2
Id              Name                marks
____________________________________________________
1               student1            84
2               student2            73
8               student7            99
4               student4            32

              course: course4
Id              Name                marks
____________________________________________________
1               student1            97
3               MyName              60
8               student6            82
Run Code Online (Sandbox Code Playgroud)

我需要提取特定学生的课程名称和相应的标记.例如,我需要MyName上述字符串中的课程和标记.

我试过了:

re.findall(".*?course: (\w+).*?MyName\s+(\d+).*?",buff,re.DOTALL)
Run Code Online (Sandbox Code Playgroud)

但这只有在每个课程下都有MyName时才有效,但是如果在某些课程中缺少MyName,则不会这样,例如在我的示例字符串中.

在这里我输出为: [('course1', '69'), ('course2', '60')]

但实际上我想要达到的目的是: [('course1', '69'), ('course4', '60')]

什么是正确的正则表达式?

#!/usr/bin/python    
import …
Run Code Online (Sandbox Code Playgroud)

python regex

5
推荐指数
1
解决办法
382
查看次数

VCenter:REST API:如何将ova上传到内容库

我试图使用REST API从ova创建虚拟机。我可以使用以下Rest API来做到这一点:

https://vcenter_ip/rest/com/vmware/vcenter/ovf/library-item/id:<library_item_id_ie_ova_item>?~action=deploy
Run Code Online (Sandbox Code Playgroud)

为此,我通过VSphere Client上传了ova。(内容库->选择库->导入项->从本地选择.ovf文件->(提示选择参考文件)从本地选择相关的.vmdk)

但是我想通过Rest API执行上传。

到目前为止,我已执行的步骤是:

  1. 创建一个图书馆

网址:https:// vcenter_ip / rest / com / vmware / content / local-library

Method: POST
Headers:
   Key:Content-Type 
   value: application/json
Request Body:
{
    "create_spec": {
        "name": "CL1",
        "description": "CL1 Desc",
        "publish_info": {
            "authentication_method": "NONE",
            "persist_json_enabled": false,
            "published": false
        },
        "storage_backings": [
            {
                "datastore_id": "datastore-144",
                "type": "DATASTORE"
            }
        ],
        "type": "LOCAL"
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 创建一个图书馆物品

网址:https:// vcenter_ip / rest / com / vmware / content / library / item

Method: POST
Headers: …
Run Code Online (Sandbox Code Playgroud)

api rest vmware ova vcenter

5
推荐指数
1
解决办法
1583
查看次数

matplotlib:值超过阈值时的不同标记颜色

我是matplotlib的新手,这里是情况简化情节的图片:http: //postimg.org/image/qkdm6p31p/

我想为某个阈值以上的值设置一个红色标记,在这种情况下,红线上方的两个点有一个红色标记.在matplotlib中有可能吗?

当我关闭窗口时,我真的不明白为什么我的代码永远不会完成执行.

这是我的代码:

import wx
import numpy as np
import matplotlib
matplotlib.use('WXAgg')
import matplotlib.pyplot as plt
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas

class GraphFrame(wx.Frame):

    def __init__(self):
        self.displaySize = wx.DisplaySize() 
        wx.Frame.__init__(self, None, -1,
                 style = wx.DEFAULT_FRAME_STYLE,
                 size = (self.displaySize[0], self.displaySize[1]))
        self.threshold = 3000
        self.create_main_panel()
        self.draw_plot()

    def create_main_panel(self):
        self.panel = wx.Panel(self,-1, style = wx.SUNKEN_BORDER)
        self.fig = plt.figure()
        self.canvas = FigureCanvas(self.panel, -1, self.fig)

        self.panelsizer = wx.BoxSizer(wx.HORIZONTAL)
        self.panelsizer.Add(self.canvas, 1, wx.EXPAND)        
        self.panel.SetSizer(self.panelsizer)
        mainsizer = wx.BoxSizer(wx.VERTICAL)
        mainsizer.Add(self.panel, 1, wx.EXPAND )        
    self.SetSizerAndFit(mainsizer)

        self.init_plot() …
Run Code Online (Sandbox Code Playgroud)

python wxpython matplotlib python-2.7

4
推荐指数
1
解决办法
3131
查看次数

wxpython:wxpython中的透明面板

在 wxpython 中可以使整个框架透明SetTransparent(val)。但是我可以将其中的单个面板设为透明吗?

我尝试使用panelobj.SetTransparent(val)但没有用。

import wx

class MyFrame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title,size=(250, 250))

        topPanel = wx.Panel(self)

        panel1 = wx.Panel(topPanel, -1)
        panel1.SetTransparent(100)
        panel2 = wx.Panel(topPanel, -1)
        panel2.SetBackgroundColour('gray')

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel1,1,flag = wx.EXPAND|wx.ALL)
        sizer.Add(panel2,1,flag = wx.EXPAND|wx.ALL)

        topPanel.SetSizer(sizer)



class MyApp(wx.App):
     def OnInit(self):
         frame = MyFrame(None, -1, 'frame')
         frame.Show(True)
         return True

app = MyApp(0)
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

假设我想为 panel1 设置透明度。

python wxpython python-2.7

3
推荐指数
2
解决办法
7702
查看次数

python:使用多处理时访问变量的问题

我是 python 中多处理概念的新手,当我尝试在我的代码中包含多处理时,我在访问变量时遇到了问题。对不起,如果我听起来很天真,但我就是想不通。下面是我的场景的一个简单版本。

class Data:
    def __init__(self):
        self.data = "data"
    def datameth(self):
        print self.data
        print mainvar

class First:
    def __init__(self):
        self.first = "first"
    def firstmeth(self):
        d = Data()
        d.datameth()
        print self.first

def mymethod():
    f = First()
    f.firstmeth()

if __name__ == '__main__':
    mainvar = "mainvar"
    mymethod()
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它运行良好并给出输出:

data
mainvar
first
Run Code Online (Sandbox Code Playgroud)

但是当我尝试mymethod()作为一个进程运行时

from multiprocessing import Process
class Data:
    def __init__(self):
        self.data = "data"
    def datameth(self):
        print self.data
        print mainvar

class First:
    def __init__(self):
        self.first = "first"
    def firstmeth(self):
        d = …
Run Code Online (Sandbox Code Playgroud)

python class multiprocessing python-2.7 python-multiprocessing

1
推荐指数
1
解决办法
1040
查看次数