小编Sil*_*ost的帖子

分割文件名

如何编写Python脚本来分割文件名

例如

LN0001_07272010_3.dat
Run Code Online (Sandbox Code Playgroud)

并将文件重命名为LN0001_JY_07272010

另外我如何放置“|” 该文件(内容)中每一行的末尾每一行都是一条记录?

python string

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

理解类中的python变量范围

我试图在类中定义一个变量,然后可以从该类中的函数访问/更改该变量.

例如:

class MyFunctions():
    def __init__( self):
        self.listOfItems = []

    def displayList( self):
        """Prints all items in listOfItems)"""
        for item in self.listOfItems:
            print item

    def addToList(self):
        """Updates all mlb scores, and places results in a variable."""
        self.listOfItems.append("test")

f = MyFunctions()
f.addToList
f.displayList
Run Code Online (Sandbox Code Playgroud)

这应该为我输出列表中的所有项目,但它不会显示任何内容.我假设这是因为我没有正确设置变量的范围.我希望能够从MyFuctions中的所有函数中访问和更改listOfItems.

我一直试图解决这个问题几个小时,所以任何帮助将不胜感激.

python methods syntax call

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

PIL裁剪和粘贴问题:裁剪不会创建裁剪图像

我正在尝试裁剪图像,然后将裁剪后的图像粘贴到另一个图像的中心.理想情况下,我希望裁剪的图像比粘贴的图像小,以便在粘贴的图像周围有边框,但我不知道是否可能.

这是我尝试过的(以及产生的错误消息):

>>> import Image
>>> grey = Image.new('RGB', (200, 200), "grey")
>>> House = Image.open("House01.jpg")
>>> print grey.size, grey.mode, grey.format
>>>(200, 200) RGB None
>>> print House.size, House.mode, House.format
>>>(300, 300) RGB JPEG
>>> box = (25, 25, 25, 25)
>>> House.crop(box)
>>>Image._ImageCrop image mode=RGB size=0x0 at 0x11AD210>
>>> region = House.crop(box)
>>> region.show()
>>>Traceback (most recent call last):
 >>> File "<pyshell#28>", line 1, in <module>
    region.show()
>>>  File "C:\Python26\lib\site-packages\PIL\Image.py", line 1483, in show
    _show(self, title=title, command=command)
>>>  File …
Run Code Online (Sandbox Code Playgroud)

python crop paste python-imaging-library

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

Python正则表达式中的负面lookbehind

我试图使用python解析文件中的数据列表 - 但是我不想提取任何已注释掉的数据.数据结构的一个例子是:

#commented out block
uncommented block
#   commented block
Run Code Online (Sandbox Code Playgroud)

我试图只检索中间项目,所以我试图在开始时排除带有哈希的项目.问题是一些哈希值直接在注释项目旁边,有些哈希值,并且我目前只有在上面第一个例子中注释了项目时才能使用表达式 -

(?<!#)(commented)
Run Code Online (Sandbox Code Playgroud)

我尝试将\ s +添加到负向前瞻,但后来我抱怨表达式没有明显的最大长度.有没有办法做我想做的事情?

提前致谢,

python regex string

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

Python - 函数中的默认参数

查看python doc http://docs.python.org/library/urllib2.html

urllib2.urlopen(url [,data] [,timeout])

所以,我传入一个url,然后传递可选数据和超时变量(从我如何读取它).

所以,如果我想传递超时,而不是数据......那么数据的默认变量是什么?你做的,

urlopen('http://www.example.com/', , 5)
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

python urllib2

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

令人困惑的表达式在python中

如果我有这个清单:

lista=[99, True, "Una Lista", [1,3]]
Run Code Online (Sandbox Code Playgroud)

以下表达式是什么意思?

mi_var = lista[0:4:2]
Run Code Online (Sandbox Code Playgroud)

python list slice

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

lambdas如何运作?

我正在使用官方python网站上的教程学习python,并遇到了这个例子:

>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43
Run Code Online (Sandbox Code Playgroud)

从哪里x获得它的价值?我不熟悉lambda是如何工作的,我从javascript中理解匿名函数,但这让我很难过.有人想照亮一些光吗?我将不胜感激.

python lambda

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

在Python 2.6中收集键/值对

在Python 2.7中,我习惯于从数组中收集键/值对并将其作为哈希返回:

return { u.id : u.name for u in users }
Run Code Online (Sandbox Code Playgroud)

但事实证明它在Python 2.6中不起作用:

return { u.id : u.name for u in users }
                             ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我怎么能避免做这样的事情?

values = {}

for u in users:
  values[u.id] = u.name

return values
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法?

python dictionary python-2.6

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

优雅地扩展几个列表

给出几个列表:

a = ["a1", "a2", "a3"]
b = ["b1", "b2", "b3"]
...
n = ["n1", "n2", "n3"]
Run Code Online (Sandbox Code Playgroud)

以及一系列新值:

new_vals = ["a4", "b4", "n4"]
Run Code Online (Sandbox Code Playgroud)

我想得到:

["a1", "a2", "a3", "a4"]
["b1", "b2", "b3", "b4"]
...
["n1", "n2", "n3", "n4"]
Run Code Online (Sandbox Code Playgroud)

当然,我可以使用循环和临时变量来完成此操作.这似乎是前来组合zip,map以及list.extend应该更优雅做到这一点,但我的规避.

python list

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

中断选择添加另一个要在Python中观看的套接字

我正在使用Windows XP应用程序中的TCP实现点对点IPC.

我正在使用Python 2.6.6中的selectsocket模块.

我有三个TCP线程,一个通常阻塞的读取线程select(),一个通常在事件上等待的写入线程(事件表明有要写入TCP的东西)和一个接受连接的侦听线程.

如果我启动一个新连接或关闭当前连接,那么我需要中断读取选择并重新启动它,以便它也会监听新接受的套接字.

winsock我可以调用WSACancelBlockingCall哪个将优雅地中断选择.

所以我的问题是:是否有可能以pythonic方式完成所有这些而无需使用poll()

很多thx

--DM

python tcp winsock

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