Tag: python

确定Python日志logging器是否设置为DEBUG级别?

如果我使用命令行参数将日志模块设置为DEBUG,如下所示: if (opt["log"] == "debug"): logging.basicConfig(level=logging.DEBUG) 我怎么能稍后告诉logging器是否设置为DEBUG? 我正在写一个装饰器,如果True标志被传递给它,并且如果没有给定标志,它将默认打印时间信息,当根logging器被设置为DEBUG时,将会定时一个函数。

pandasDataFrame列表

我正在满足另一列中的条件,从一列中提取数据的子集。 我可以得到正确的值,但它是在pandas.core.frame.DataFrame。 如何将其转换为列表? import pandas as pd tst = pd.read_csv('C:\\SomeCSV.csv') lookupValue = tst['SomeCol'] == "SomeValue" ID = tst[lookupValue][['SomeCol']] #How To convert ID to a list

装饰python类的方法,我如何将实例传递给装饰器?

这是python2.5, GAE也不重要。 我有以下代码,我正在装饰bar中的foo()方法,使用dec_check类作为装饰器。 class dec_check(object): def __init__(self, f): self.func = f def __call__(self): print 'In dec_check.__init__()' self.func() class bar(object): @dec_check def foo(self): print 'In bar.foo()' b = bar() b.foo() 执行这个时,我希望看到: In dec_check.__init__() In bar.foo() 但是我得到了“ TypeError: foo() takes exactly 1 argument (0 given) ”作为.foo() ,作为一个对象的方法,把自己作为一个参数。 我猜测问题是,当我执行装饰器代码时, bar的实例并不存在。 那么如何将一个实例传递给装饰类呢?

以大写字母拆分string

在一组给定的字符出现之前,用什么pythonic方法来分割一个string? 例如,我想在任何大写字母(可能除第一个字母之外)的情况下拆分'TheLongAndWindingRoad' ,并获得['The', 'Long', 'And', 'Winding', 'Road'] 。 编辑:它也应该拆分单个事件,即从'ABC'我想获得['A', 'B', 'C'] 。

python any()函数到底是如何工作的?

在any python文档页面中, any()函数的等效代码如下所示: def any(iterable): for element in iterable: if element: return True return False 这个函数如何知道我想testing的元素是否以这种forms调用? any(x > 0 for x in list) 从函数定义中,我可以看到的是我正在传递一个可迭代的对象。 for循环如何知道我正在寻找> 0东西?

Python:将文件打印到标准输出

我search了,我只能find其他方法的问题:写标准input文件:) 有没有一种快速简单的方法来转储文件的内容到标准输出?

从嵌套列表中创build数组时,禁止在Numpy中使用科学表示法

我有一个嵌套的列表,如下所示: my_list = [[3.74, 5162, 13683628846.64, 12783387559.86, 1.81], [9.55, 116, 189688622.37, 260332262.0, 1.97], [2.2, 768, 6004865.13, 5759960.98, 1.21], [3.74, 4062, 3263822121.39, 3066869087.9, 1.93], [1.91, 474, 44555062.72, 44555062.72, 0.41], [5.8, 5006, 8254968918.1, 7446788272.74, 3.25], [4.5, 7887, 30078971595.46, 27814989471.31, 2.18], [7.03, 116, 66252511.46, 81109291.0, 1.56], [6.52, 116, 47674230.76, 57686991.0, 1.43], [1.85, 623, 3002631.96, 2899484.08, 0.64], [13.76, 1227, […]

为什么这需要很长时间才能匹配? 这是一个错误?

我需要匹配的Web应用程序中的某些url,即/123,456,789 ,并写了这个正则expression式匹配的模式: r'(\d+(,)?)+/$' 我注意到它似乎没有评估,即使在testing模式几分钟后: re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523') 预期的结果是没有匹配。 然而,这个expression式几乎立即执行(注意结尾的斜线): re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523/') 这是一个错误?

在Python中模糊string比较,与哪个库混淆使用

我想做模糊的string比较,但与哪个库混淆使用。 选项1: import Levenshtein Levenshtein.ratio('hello world', 'hello') Result: 0.625 选项2: import difflib difflib.SequenceMatcher(None, 'hello world', 'hello').ratio() Result: 0.625 在这个例子中,两者给出了相同的答案。 但我更喜欢使用difflib 。 任何专家的build议。 谢谢。 Updated: 我正在做临床消息正常化(拼写检查),在这个过程中,我检查每个给定的单词与900,000字医学词典。 我更关心时间复杂度/性能。 你认为在这种情况下两者performance相似吗?

查找string中子序列的出现次数

例如,让string为pi的前10位, 3141592653 ,子序列为123 。 请注意,该序列发生两次: 3141592653 1 2 3 1 2 3 这是一个面试问题,我无法回答,我想不出一个有效的algorithm,它是在扰乱我。 我觉得应该可以做一个简单的正则expression式,但像1.*2.*3不返回每个子序列。 我在Python中的天真执行(在每个1之后每个2计数3)已经运行了一个小时,没有完成。