小编tor*_*ger的帖子

WSGI和FCGI之间有速度差异吗?

从网上我发现WSGI是一个用于python web开发/框架的CGI.FCGI似乎是各种语言的更通用的网关.在参考python和C/++语言时,不知道两者之间的性能差异.

python wsgi fastcgi

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

使用python删除文件中的最后一行

如何用python删除文件的最后一行?

输入文件示例:

hello
world
foo
bar
Run Code Online (Sandbox Code Playgroud)

输出文件示例:

hello
world
foo
Run Code Online (Sandbox Code Playgroud)

我创建了以下代码来查找文件中的行数 - 但我不知道如何删除特定的行号.我是python的新手 - 所以如果有更简单的方法 - 请告诉我.

    try:
        file = open("file")
    except IOError:
        print "Failed to read file."
    countLines = len(file.readlines())
Run Code Online (Sandbox Code Playgroud)

编辑:

我想出了各种各样的答案:主要是草莓和我在网上看到的东西(对不起,我找不到链接).

#!/usr/bin/env python

import os, sys

readFile = open("file")

lines = readFile.readlines()

readFile.close()
w = open("file",'w')

w.writelines([item for item in lines[:-1]])

w.close()
Run Code Online (Sandbox Code Playgroud)

python text line

30
推荐指数
5
解决办法
7万
查看次数

如何通过python从mediawiki标记的文章中解析/提取数据

来源Mediawiki标记

现在我正在使用各种正则表达式将mediawiki标记中的数据"解析"为列表/词典,以便可以使用文章中的元素.

这不是最好的方法,因为必须进行的案例数量很大.

如何将文章的mediawiki标记解析为各种python对象,以便可以使用其中的数据?

示例是:

  • 将所有标题提取到字典中,并使用其部分对其进行哈希处理.
  • 抓住所有的interwiki链接,并将它们粘贴到一个列表中(我知道
    这可以通过API完成,但我宁愿只有一个API调用来
    减少带宽使用).
  • 提取所有图像名称并使用其部分对其进行哈希处理

各种正则表达式可以实现上述目标,但我发现我必须做出相当大的数字.

这是mediawiki非官方规范(我发现它们的官方规范没有用).

python api parsing mediawiki extraction

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

通过python快速按字母顺序排列大文件

#!/usr/bin/python

import random
import string

appendToFile = open("appendedFile", "a" )

# Generator

for i in range(1, 100000):

    chars = "".join( [random.choice(string.letters) for i in xrange(15)] )
    chars2 = "".join( [random.choice(string.letters) for i in xrange(15)] )

    appendToFile.write(chars + ":" + chars2 + "\n")

appendToFile.close()
Run Code Online (Sandbox Code Playgroud)

这个问题修改的代码.

上面的代码以STRING:STRING的格式生成100,000行随机文本.结果文本文件是3.1 MB.

如何使用STRING中的第一个STRING快速将文件字母化:STRING?案件无关紧要.

冒泡排序很慢,不是吗?

python file alphabetical

5
推荐指数
2
解决办法
5906
查看次数

如何使用lxml,XPath和Python从网页中提取链接?

我有这个xpath查询:

/html/body//tbody/tr[*]/td[*]/a[@title]/@href
Run Code Online (Sandbox Code Playgroud)

它使用title属性提取所有链接 - 并hrefFireFox的Xpath检查程序附加组件中提供.

但是,我似乎无法使用它lxml.

from lxml import etree
parsedPage = etree.HTML(page) # Create parse tree from valid page.

# Xpath query
hyperlinks = parsedPage.xpath("/html/body//tbody/tr[*]/td[*]/a[@title]/@href") 
for x in hyperlinks:
    print x # Print links in <a> tags, containing the title attribute
Run Code Online (Sandbox Code Playgroud)

这不会产生lxml(空列表)的结果.

如何在Python下抓取href包含属性标题的超链接的文本(链接)lxml

python lxml screen-scraping hyperlink extraction

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

检查是否使用python(后台守护进程)按下了键

我创建了一个python脚本,每次按下键盘上的Super(或WinKey)时都需要执行一个事件.

如果没有python进程"聚焦",如何实现这一点 - 因为它在后台运行,等待按键执行事件?

我在网上看到很多帖子向我展示了如何阅读输入 - 但他们都需要一个让这个过程"专注",而且没有人向我展示如何使用python脚本捕获Super(或WinKey).

我正在运行Ubuntu 9.10.

python binding daemon keypress ubuntu-9.10

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

通过python将一个大字符串拆分为多个包含'n'个字的子字符串

资料来源:美国独立宣言

如何将上述源文本拆分为多个子字符串,包含"n"个字?

我使用split('')来提取每个单词,但是我不知道如何在一个操作中使用多个单词.

我可以浏览我所拥有的单词列表,并通过将第一个列表中的单词粘合在一起来创建另一个单词(同时添加空格).然而,我的方法不是非常pythonic.

python string split words substring

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

删除所有嵌套块,同时通过python单独保留非嵌套块

资源:

[This] is some text with [some [blocks that are nested [in a [variety] of ways]]]
Run Code Online (Sandbox Code Playgroud)

结果文字:

[This] is some text with
Run Code Online (Sandbox Code Playgroud)

我不认为你可以为此做一个正则表达式,从查看堆栈溢出线程.

有没有一种简单的方法可以做到这一点 - >或者必须达到pyparsing(或其他解析库)?

python regex recursion nested brackets

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

使tkinter窗口出现在所有其他窗口上

#!/usr/bin/env python
# Display window with toDisplayText and timeOut of the window.

from Tkinter import *

def showNotification(notificationTimeout, textToDisplay):

    ## Create main window
    root = Tk()
    Button(root, text=textToDisplay, activebackground="white", bg="white", command=lambda: root.destroy()).pack(side=LEFT)

    root.update_idletasks()
    # Remove window decorations
    root.overrideredirect(1)

    timeOut = int(notificationTimeout*1000) # Convert to ms from s

    ## Run appliction
    root.after(timeOut,root.destroy)
    root.mainloop()
Run Code Online (Sandbox Code Playgroud)

上面的代码创建了一个带有提示的通知.但是在Windows上 - 通知不会自动弹出所有其他当前窗口.必须单击kill按钮(文本),并在第一次对焦,之后根窗口将显示在所有其他窗口上方.

有没有办法让通知自动出现在所有其他窗口之上 - 在Windows上?

它似乎在Linux上工作得很好(ubuntu 9.10).

python windows stack focus tkinter

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

通过python按大小排序文件列表

从目录列表中转储的示例:

hello:3.1 GB
world:1.2 MB
foo:956.2 KB
Run Code Online (Sandbox Code Playgroud)

以上列表的格式为FILE:VALUE UNIT.如何根据文件大小订购上面的每一行?

我想也许可以通过模式":VALUE UNIT"(或以某种方式使用分隔符)解析单元的每一行,然后通过ConvertAll引擎运行它,从字节中接收每个值的大小,用其余的行哈希(文件名),然后通过大小对结果字典对进行排序.

麻烦的是,我不知道模式匹配.但是我看到你可以对字典进行排序

如果有更好的方向来解决这个问题,请告诉我.


编辑:

我的列表实际上是在一个文件中.从(令人敬畏的)Alex Martelli的答案中获取灵感,我写了以下代码,从一个文件中提取,命令并写入另一个文件.

#!/usr/bin/env python

sourceFile = open("SOURCE_FILE_HERE", "r")
allLines = sourceFile.readlines()
sourceFile.close()

print "Reading the entire file into a list."

cleanLines = []

for line in allLines:
    cleanLines.append(line.rstrip())

mult = dict(KB=2**10, MB=2**20, GB=2**30)

def getsize(aline):
  fn, size = aline.split(':', 1)
  value, unit = size.split(' ')
  multiplier = mult[unit]
  return float(value) * multiplier

print "Writing sorted list to file."

cleanLines.sort(key=getsize)

writeLines …
Run Code Online (Sandbox Code Playgroud)

python arrays hash dictionary

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

在python中按列表分类列表

列表的示例列表:

[
["url","name","date","category"]
["hello","world","2010","one category"]
["foo","bar","2010","another category"]
["asdfasdf","adfasdf","2010","one category"]
["qwer","req","2010","another category"]
]
Run Code Online (Sandbox Code Playgroud)

我想做的是创建一个字典 - >类别:[条目列表].

结果字典将是:

{"category" : [["url","name","date","category"]],
"one category" : [["hello","world","2010","one category"],["asdfasdf","adfasdf","2010","one category"]],
"another category" : [["foo","bar","2010","another category"], ["qwer","req","2010","another category"]]}
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary list map

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