我经常看到人们使用Perl数据结构代替配置文件。即一个仅包含以下内容的独立文件:
%config = (
'color' => 'red',
'numbers' => [5, 8],
qr/^spam/ => 'eggs'
);
使用纯Python将这些文件的内容转换为等效于Python的数据结构的最佳方法是什么?目前,我们可以假设没有要评估的真实表达式,只有结构化数据。
不知道用例是什么。这是我的假设:您将要进行一次从Perl到Python的转换。
Perl有这个
%config = (
'color' => 'red',
'numbers' => [5, 8],
qr/^spam/ => 'eggs'
);
在Python中,
config = {
'color' : 'red',
'numbers' : [5, 8],
re.compile( "^spam" ) : 'eggs'
}
所以,我想这是一堆可替换的RE
%variable = (
与 variable = {
);
与 }
variable => value
与 variable : value
qr/.../ =>
与 re.compile( r"..." ) : value
但是,dict
使用正则表达式作为哈希键,Python的内置功能不会做任何异常。为此,您必须编写自己的的子类dict
,并进行重写__getitem__
以分别检查REGEX键。
class PerlLikeDict( dict ):
pattern_type= type(re.compile(""))
def __getitem__( self, key ):
if key in self:
return super( PerlLikeDict, self ).__getitem__( key )
for k in self:
if type(k) == self.pattern_type:
if k.match(key):
return self[k]
raise KeyError( "key %r not found" % ( key, ) )
这是使用类似Perl的字典的示例。
>>> pat= re.compile( "hi" )
>>> a = { pat : 'eggs' } # native dict, no features.
>>> x=PerlLikeDict( a )
>>> x['b']= 'c'
>>> x
{<_sre.SRE_Pattern object at 0x75250>: 'eggs', 'b': 'c'}
>>> x['b']
'c'
>>> x['ji']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 10, in __getitem__
KeyError: "key 'ji' not found"
>>> x['hi']
'eggs'
问题内容: 嗨,我习惯了SQL,但是我需要从HBase表读取数据。任何帮助都会很棒。一本书,或者只是一些示例代码,可以从表中读取。有人说使用扫描仪可以解决问题,但我不知道如何使用。 问题答案: 从网站:
问题内容: 当我们处理本地文件时,我想做的事情很简单,但是当我尝试使用远程URL时,问题就来了。 基本上,我试图从URL提取的文件中创建一个PIL图像对象。当然,我总是可以只获取URL并将其存储在临时文件中,然后将其打开到图像对象中,但这感觉效率很低。 这是我所拥有的: 它抱怨说不可用,所以我尝试了这个: 但这也不起作用。有没有更好的方法可以执行此操作,还是可以将这种方式写入临时文件? 问题答案:
问题内容: 我正在与几个音乐播放器集成。目前,我最喜欢的是灵动的。 在新版本中,他们正在将数据库格式从SQLite3迁移到内部Pickle格式。我想知道是否有一种方法可以访问泡菜格式的文件,而无需手工进行逆向工程。 我知道有cPickle python模块,但是我不知道它是否可以直接从C调用。 问题答案: http://www.picklingtools.com/ 有一个名为PicklingToo
我是火花的新手,我找不到这个...我有许多拼花地板文件上传到的位置: 此文件夹的总大小为,。如何将这些文件分块并读取到一个数据包中,如何将所有这些文件加载到一个数据包中? 错误:
本文向大家介绍Python如何读取MySQL数据库表数据,包括了Python如何读取MySQL数据库表数据的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参考,具体内容如下 环境:Python 3.6 ,Window 64bit 目的:从MySQL数据库读取目标表数据,并处理 代码: 结果如图: 以上就是本文的全部内容,希望对大
我有一个非常简单的问题:使用Python从txt文件中读取不同条目的最有效方法是什么? 假设我有一个文本文件,如下所示: 在C中,我会这样做: 用Python做这样的事情最好的方法是什么?以便将每个值存储到不同的变量中(因为我必须在整个代码中使用这些变量)。 提前感谢!