小编Ste*_*nes的帖子

如何在Python中显示jpg文件?

def show():

    file = raw_input("What is the name of the image file? ")

    picture = Image(file)

    width, height = picture.size()

    pix = picture.getPixels()
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写代码来显示此图像,但此代码不提供图像.如何更改我的代码才能显示此图像?

python

22
推荐指数
2
解决办法
15万
查看次数

以.结尾的python单词中的字符串比较

我有一组单词如下:

['Hey, how are you?\n','My name is Mathews.\n','I hate vegetables\n','French fries came out soggy\n']
Run Code Online (Sandbox Code Playgroud)

在上面的句子中,我需要识别以?or .或'gy' 结尾的所有句子.并打印最后一个字.

我的方法如下:

# words will contain the string i have pasted above.
word = [w for w in words if re.search('(?|.|gy)$', w)]
for i in word:
    print i
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

嘿,你怎么样?

我的名字是马修斯.

我讨厌蔬菜

炸薯条湿透了

预期的结果是:

您?

马修斯.

浸水

python

10
推荐指数
2
解决办法
6656
查看次数

如何从iterator()获取正确顺序的元素

这是我的代码,用于将数据存储到HashMap中并使用迭代器显示数据

public static void main(String args[]) {
    HashMap<String, String> hm = new HashMap<String, String>();
    hm.put("aaa", "111");
    hm.put("bbb", "222");
    hm.put("ccc", "333");
    hm.put("ddd", "444");
    hm.put("eee", "555");
    hm.put("fff", "666");

    Iterator iterator = hm.keySet().iterator();

    while (iterator.hasNext()) {
        String key = (String) iterator.next();
        String val = hm.get(key);

        System.out.println(key + " " + val);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它没有按照我存储的顺序显示.有人可以告诉我哪里出错了吗?我怎样才能获得订单中的元素?

java iterator hashmap

6
推荐指数
2
解决办法
1万
查看次数

始终并行运行恒定数量的子进程

我想使用子进程让20个写入脚本实例并行运行.假设我有一个大的网址列表,其中包含100,000个条目,我的程序应该控制我的脚本的20个实例始终在该列表上工作.我想按如下方式编写代码:

urllist = [url1, url2, url3, .. , url100000]
i=0
while number_of_subproccesses < 20 and i<100000:
    subprocess.Popen(['python', 'script.py', urllist[i]]
    i = i+1
Run Code Online (Sandbox Code Playgroud)

我的脚本只是将内容写入数据库或文本文件.它不输出任何东西,不需要比网址更多的输入.

我的问题是我找不到如何获得活动子进程数的东西.我是一个新手程序员,所以每个提示和建议都是受欢迎的.我还想知道如果加载了20个子进程,while循环再次检查条件,我怎么能管理它?我想过可能会在它上面放一个while循环,比如说

while i<100000
   while number_of_subproccesses < 20:
       subprocess.Popen(['python', 'script.py', urllist[i]]
       i = i+1
       if number_of_subprocesses == 20:
           sleep() # wait to some time until check again
Run Code Online (Sandbox Code Playgroud)

或者也许还有一种可能性,即while循环总是检查子进程的数量?

我还考虑过使用模块多处理,但我发现只使用子处理调用script.py而不是多处理函数非常方便.

也许有人可以帮助我并引导我走向正确的方向.非常感谢!

python parallel-processing subprocess multiprocessing python-3.x

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

获取python中多处理函数的返回值

我有两个并行运行的函数,每个函数都返回一个值.我需要等待两个函数完成,然后处理它们的返回.我怎么能在python中实现这一点.假设

def fun1():
   #do some calculation#
   return val1

def fun2():
   #do some calculation#
   return val2
Run Code Online (Sandbox Code Playgroud)

我想fun1和fun2并行运行然后需要计算

valsum = val1+val2
Run Code Online (Sandbox Code Playgroud)

python python-multithreading python-multiprocessing

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

在python中使用unittest库进行代码测试

几天来,我一直在努力学习如何在 Python 中正确使用 unittest 库。我已经掌握了一些基础知识,但我对自己提出了挑战 - 测试我之前创建的两个函数。这些是函数:

    def PatternMatch(self, message, number):
        ret_status = 2 # 'No match'
        ret_pattern = -1  

        for pattern in self.PatternList:
            if pattern.active == 1 and pattern.LA == number:
                try:
                    RegExp = re.compile(pattern.regex)
                if RegExp.match(message):
                    ret_status = 1
                    ret_pattern = pattern.ID
                    break

        return ret_status, ret_pattern


    def GetPattern(self, patternID):
        pattern = None
        db = Database()
        query = 'CALL PATTERN_GET'
        query += '(@sql_err_code, @my_status, @my_msg, %s)'
        ret = db.query(query, [patternID])
        if len(ret['data']) == 2:
            pattern = Pattern(ret['data'][1])
        else:
            pattern …
Run Code Online (Sandbox Code Playgroud)

python unit-testing

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

如何在没有\n的情况下使用python在文本文件中添加新行

我有一个具有文件列表的文件,但它增加了\n在最后我怎么能有蟒蛇只是写我需要一个新的行信息没有得到\n的方式,这样的方式我的信息将被称为X.accx.acc\n?这是我写入文件的代码

def add(x):
    nl = "\n"
    acc = ".acc"
    xy = x + acc
    exyz = xy
    xyz = exyz
    xxx = str(xyz)
    tf = open('accounts.dat',"a+")
    tf.writelines(nl)
    tf.writelines(xxx)
    tf.close
Run Code Online (Sandbox Code Playgroud)

以下是调用该文件的代码:

import sys

tf = open('accounts.dat','r')
names = tf.readlines()




u = choicebox(msg="pick something",title = "Choose an account",choices=(names))


counter_file = open(u, 'r+')
content_lines = []

for line in counter_file:
    if line == "credits =":
        creds = line
    else:
        False


for line in counter_file:
        if …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

2
推荐指数
1
解决办法
6万
查看次数

如何在wxpython中将图像作为背景

如何给panel1添加背景图片?有哪个命令?

代码:

import wx
import wx
appy=wx.App()

class cg(wx.Frame) :
     def __init__(self,parent,id) :
         wx.Frame.__init__(self,parent,id,'GPA',pos=(1000,600),size=(600,400))
         #splitter = wx.SplitterWindow(self, -1)
         panel1 = wx.Panel(self)
         panel2 = wx.Panel(panel1, -1,size=(600,200),style=wx.BORDER_SUNKEN)
         panel3 = wx.Panel(panel1, -1,pos=(0,200),size=(600,200),style=wx.BORDER_SUNKEN)
         #panel3=wx.panel(panel1,-1,pos=(300,200),size=(600,200),style=wx.BORDER_SUNKEN)
         #panel13 = wx.Panel(panel1, -1, style=wx.BORDER_SUNKEN)
         #panel13 = wx.Panel(panel1, -1, style=wx.BORDER_SUNKEN)
         #panel13 = wx.Panel(panel1, -1, style=wx.BORDER_SUNKEN)

         #button1=wx.Button(panel1,label='exit',pos=(10,10),size=(10,10))
         #self.cnt1=wx.TextCtrl(panel1,pos=(40,60),size=(120,30))

if __name__=='__main__' :

     app=wx.PySimpleApp()
     frame=cg(parent=None,id=-1)
     frame.Show()
     app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

wxpython

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

无法理解简单的错误消息

我已经定义了如下函数来尝试在两组数据之间进行插值.当我运行它时,我收到消息:

    for i, j in range(0, len(wavelength)):
TypeError: 'int' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么.不可否认,我对此并不擅长.

def accountforfilter(wavelength, flux, filterwavelength, throughput):
    filteredwavelength=[]
    filteredflux=[]

    for i in range(0, len(wavelength)):
        if wavelength[i] in filterwavelength[j]:
            j=filterwavelength.index(wavelength[i])
            filteredwavelength.append(wavelength[i])
            filteredflux.append(flux[i]*throughput[j])

        elif wavelength[i]<filterwavelength[j]<wavelength[i+1]:
            m=((throughput[j+1]-throughput[j])/(filterwavelength[j+1]-filterwavelength[j])
            c=throughput[j]-(m*(wavelength[i]))
            filteredwavelength.append(wavelength[i])
            filteredflux.append(flux[i]*(m*wavelength[i]+c)

    return filteredwavelength, filteredflux
Run Code Online (Sandbox Code Playgroud)

python int list

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