我使用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) 我试图使用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执行上传。
到目前为止,我已执行的步骤是:
网址: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)
网址:https:// vcenter_ip / rest / com / vmware / content / library / item
Method: POST
Headers: …Run Code Online (Sandbox Code Playgroud) 我是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) 在 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 中多处理概念的新手,当我尝试在我的代码中包含多处理时,我在访问变量时遇到了问题。对不起,如果我听起来很天真,但我就是想不通。下面是我的场景的一个简单版本。
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