Tag: python

什么是python的解压元组?

这是丑陋的。 什么是更加Python的方法来做到这一点? import datetime t= (2010, 10, 2, 11, 4, 0, 2, 41, 0) dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6])

为什么使用sys.path.append(path)而不是sys.path.insert(1,path)?

编辑:基于Ulf Rompe的评论, 重要的是你使用“1”而不是“0” ,否则你会打破sys.path 。 我一直在做python了一段时间(一年多),而且我总是困惑,为什么人们推荐你使用sys.path.append()而不是sys.path.insert() 。 让我来certificate一下。 比方说,我正在研究一个名为PyWorkbooks(安装在我的计算机上)的模块,但是我正在同时使用一个包含PyWorkbooks的不同模块(比方说PyJob)。 当我在PyJob上工作时,我在PyWorkbooks中发现错误,所以我想导入一个开发版本。 有两种方法可以同时工作(例如,我可以将PyWorkbooks项目放在PyJob中),但是有时我仍然需要使用path。 但是, 我不能简单地执行一个sys.path.append()到PyWorkbooks所在的文件夹 。 为什么? 因为python会先find我安装的PyWorkbook! 这就是为什么你必须做一个sys.path.insert(1,path_to_dev_pyworkbooks) 综上所述: sys.path.append(path_to_dev_pyworkbooks) import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one 要么: sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0** import PyWorkbooks # imports correct file 这在过去对我造成了一些困扰,如果我们(作为一个社区)开始推荐sys.path.insert(1, path) ,就好像你正在手动插入一个我认为是的path安全地说,这是你想要使用的path! 或者我有什么问题? 这是一个困扰我的问题,我希望它公开!

什么是在python中最有效的string连接方法?

Python中是否有任何有效的批量string连接方法(如C#中的StringBuilder或Java中的StringBuffer )? 我在这里find以下方法: 简单的连接使用+ 使用string列表和join方法 从MutableString模块使用UserString 使用字符数组和array模块 使用来自StringIO模块的StringIO 但是,您的专家使用或build议,为什么? [ 这里有一个相关的问题 ]

我怎样才能包含Hadoopstream作业的Python包?

我想包括一个Python包(NLTK)与Hadoopstream作业,但不知道如何做到这一点,而不包括手动通过CLI参数,“文件”的每个文件。 编辑:一个解决scheme是将这个软件包安装在所有的奴隶,但我没有目前的select。

使用部分下载(HTTP)下载文件

有没有办法使用部分下载function通过HTTP下载大量且仍在增长的文件? 看来这个代码每次从头开始下载文件: import urllib urllib.urlretrieve ("http://www.example.com/huge-growing-file", "huge-growing-file") 我想要: 只取得新写入的数据 只要源文件变小(例如旋转),就从头开始下载。

我可以在由Pool.imap调用的函数中使用多处理队列吗?

我正在使用Python 2.7,并尝试在自己的进程中运行一些CPU繁重的任务。 我希望能够发送消息回到父进程,以通知进程的当前状态。 多处理队列似乎是完美的,但我不知道如何得到它的工作。 所以,这是我的基本工作示例,减去使用队列。 import multiprocessing as mp import time def f(x): return x*x def main(): pool = mp.Pool() results = pool.imap_unordered(f, range(1, 6)) time.sleep(1) print str(results.next()) pool.close() pool.join() if __name__ == '__main__': main() 我试过用几种方式传递队列,并且他们得到错误消息“RuntimeError:队列对象应该只通过inheritance在进程间共享”。 这是我根据我发现的早期答案尝试的方法之一。 (我遇到同样的问题,试图使用Pool.map_async和Pool.imap) import multiprocessing as mp import time def f(args): x = args[0] q = args[1] q.put(str(x)) time.sleep(0.1) return […]

从嵌套字典中的项目构造pandas DataFrame

假设我有一个结构为嵌套的字典“user_dict”: 级别1: UserId(长整型) 级别2:类别(string) 等级3:分类的属性(浮点数,整数等) 例如,这个字典的input是: user_dict[12] = { "Category 1": {"att_1": 1, "att_2": "whatever"}, "Category 2": {"att_1": 23, "att_2": "another"}} “user_dict”中的每个项目具有相同的结构,并且“user_dict”包含大量我想要馈送给pandas DataFrame的项目,从属性构build系列。 在这种情况下,分层索引对于这个目的是有用的。 具体来说,我的问题是,是否存在一种方法来帮助DataFrame构造函数理解该系列应该从字典中的“级别3”的值构build? 如果我尝试像这样: df = pandas.DataFrame(users_summary) “级别1”(用户ID)的项目被视为列,这是我想要达到的目标(有用户ID作为索引)的相反。 我知道我可以在迭代字典条目之后构build系列,但是如果有更直接的方法,这将非常有用。 类似的问题是询问是否可以从文件中列出的json对象构造一个pandas DataFrame。

find最接近列表中未完全sorting值的项目的索引

作为一个例子,我的名单是: [25.75443, 26.7803, 25.79099, 24.17642, 24.3526, 22.79056, 20.84866, 19.49222, 18.38086, 18.0358, 16.57819, 15.71255, 14.79059, 13.64154, 13.09409, 12.18347, 11.33447, 10.32184, 9.544922, 8.813385, 8.181152, 6.983734, 6.048035, 5.505096, 4.65799] 我正在寻找最接近11.5的价值指数。 我尝试了其他方法,如二进制search和bisect_left但他们不工作。 我无法对此数组进行sorting,因为该值的索引将用于类似的数组上以获取该索引处的值。

使用BeautifulSoup删除标签,但保留其内容

目前我有这样的代码: soup = BeautifulSoup(value) for tag in soup.findAll(True): if tag.name not in VALID_TAGS: tag.extract() soup.renderContents() 除了我不想丢弃无效标签内的内容。 如何在调用soup.renderContents()时去掉标签,但保留内容?

使用MySQLdb执行“SELECT … WHERE … IN …”

我在执行Python中的一些SQL时遇到问题,尽pipe类似的SQL可以在mysql命令行下正常工作。 表格看起来像这样: mysql> SELECT * FROM foo; +——-+—–+ | fooid | bar | +——-+—–+ | 1 | A | | 2 | B | | 3 | C | | 4 | D | +——-+—–+ 4 rows in set (0.00 sec) 我可以从mysql命令行执行下面的SQL查询,没有问题: mysql> SELECT fooid FROM foo WHERE bar IN ('A','C'); SELECT fooid FROM foo […]