小编Sil*_*ost的帖子

加载不同的模块而不更改逻辑文件

假设我有两个不同的模块,它们具有统一(相同)的接口.文件列表如下:

root/
   logic.py
   sns_api/
      __init__.py
      facebook/
          pyfacebook.py
          __init__.py
      myspace/
          pymyspace.py
          __init__.py
Run Code Online (Sandbox Code Playgroud)

并且pyfacebook.py和pymyspace.py具有相同的接口,这意味着:

# in pyfacebook.py
class Facebook:
   def __init__(self, a, b):
       # do the init
   def method1(self, a, b, ...):
       # do the logic

# in pymyspace.py
class Myspace:
   def __init__(self, a, b):
       # do the init
   def method1(self, a, b, ...):
       # do the logic
Run Code Online (Sandbox Code Playgroud)

现在我有一个问题.我想在logic.py中执行逻辑而不复制代码,所以我想知道如何设置一个标志来显示我使用的模块,python将自动加载正确的代码,这意味着:

# in logic.py

PLATFORM = "facebook"

# import the right modules in, complete the logic with the current platform
# create the right …
Run Code Online (Sandbox Code Playgroud)

python interface dynamic-import

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

我怎么能为文字赋值?('a'= 10)

def foo(**args):
    for k, v in args.items():
        print type(k), type(v)
    for k, v in args.items():
        k = v
    print k
    print type(k)

foo(a = 10)
foo(**{'a':10})
Run Code Online (Sandbox Code Playgroud)

给我

<type 'str'> <type 'int'>
10
<type 'int'>
<type 'str'> <type 'int'>
10
<type 'int'>
Run Code Online (Sandbox Code Playgroud)

所以我很困惑,我怎么能这样做,因为k是一个字符串,所以我不能分配给它?

我显然做不到

In [35]: 'a' = 10
------------------------------------------------------------
   File "<ipython console>", line 1
SyntaxError: can't assign to literal (<ipython console>, line 1)
Run Code Online (Sandbox Code Playgroud)

python

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

当我不知道将有多少级别时,如何循环遍历数据结构的所有级别以提取所有数据?

我需要从结构中提取数据并将其放入列表中,但我不知道结构有多少级别.

对于每个级别,我可以调用level.children(),如果当前级别之下没有级别,则返回[],如果有,则返回[object, object, ...],在每个级别上我可以children()再次调用.

我需要深入了解结构,直到我将所有级别的数据提取到列表中.

当基于这样的结构:

<name>John Smith</name>
<team link="http://teamwebsite.com">
    <name>Team Name</name>
</team>
<games>
    <location>
        <venue>A stadium</venue>
    </location>
</games>
Run Code Online (Sandbox Code Playgroud)

该列表应如下所示:

[
    [
        {'name': 'name', 'attrs': {}, 'text': 'John Smith', 'parent': None},
    ],
    [
        {'name': 'team', 'attrs': {'link': 'http://teamwebsite.com'}, 'text': '', 'parent': None},
        {'name': 'name', 'attrs': {}, 'text': 'Team Name', 'parent': 1}, # the reference to its parent's position in the list
    ],
    [
        {'name': 'games', 'attrs': {}, 'text': '', 'parent': None},
        {'name': …
Run Code Online (Sandbox Code Playgroud)

python xml loops data-structures

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

如何从列表中删除某些内容,以及字符串匹配?

[(',', 52),
 ('news', 15),
 ('.', 11),
 ('bbc', 8),
 ('and', 8),
 ('the', 8),
 (':', 6),
 ('music', 5),
 ('-', 5),
 ('blog', 4),
 ('world', 4),
 ('asia', 4),
 ('international', 4),
 ('on', 4),
 ('itunes', 4),
 ('online', 4),
 ('digital', 3)]
Run Code Online (Sandbox Code Playgroud)

假设我有这个列表,里面有元组.

如何查看列表并删除其中没有字母字符的元素?

所以它变成了这个:

[('news', 15),
 ('bbc', 8),
 ('and', 8),
 ('the', 8),
 ('music', 5),
 ('blog', 4),
 ('world', 4),
 ('asia', 4),
 ('international', 4),
 ('on', 4),
 ('itunes', 4),
 ('online', 4),
 ('digital', 3)]
Run Code Online (Sandbox Code Playgroud)

python regex list

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

Python bash管道

我想将python脚本的输出传递给bash脚本.我所做的,到目前为止是我试图用os.popen(),sys.subprocess()以及试图给管道为例

os.popen('echo "P 1 1 591336 4927369 1 321 " | v.in.ascii -zn out=abcx format=standard --overwrite')
Run Code Online (Sandbox Code Playgroud)

但这不起作用,值"591336""4927369"是作为python脚本输出的变量.但是当我这样做或通过重复echo命令和管道手动更改值时,它可以工作(在bash中).

v.in.ascii -zn out=abcx format=standard --overwrite
Run Code Online (Sandbox Code Playgroud)

bash命令的上述部分是Grass GIS的一部分

谁能帮我!

python bash pipe

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

需要帮助了解此递归函数如何工作

这是一个功能(归功于用户Abbot,用于在另一个问题中提供)

def traverse(ftp):

    level = {}
    for entry in (path for path in ftp.nlst() if path not in ('.', '..')):
        ftp.cwd(entry)
        level[entry] = traverse(ftp) 
        ftp.cwd('..')
    return level
Run Code Online (Sandbox Code Playgroud)

这是我不明白的:当python进入函数时,它会创建一个空字典(level).在for循环中,它将目录名称存储为字典中的键.至于那个键的值,python再次进入函数并搜索一个目录,它就变成了该键的值.

但是,级别字典如何记住内部的值?我的意思是,每次python进入函数时都不应该重置/清空吗?

python recursion

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

在Python中创建N*N*N列表的问题

我正在尝试在Python中创建一个三维N N N列表,如下所示:

n=3
l = [[[0,]*n]*n]*n
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎没有正确"克隆"列表,因为我认为它会:

>>> l
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
>>> l[0][0][0]=1
>>> l
[[[1, 0, 0], [1, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 0, 0], [1, 0, 0]]]
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

python list mutable

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

如何在Python中确定数据类型?

astring('a','tuple')

如何确定"x"是元组还是字符串?

python

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

我可以要求为python提供一些很棒的个性化IDE屏幕截图吗?

如何为python开发设置Linux/Unix机器?我应该使用哪个Linux/Unix版本?应该使用什么IDE?我应该有哪些开发插件?什么样的代码风格应该是最好的?以上所述,一个开源(python开发人员)开发的伟大开发机器?

我可以要求为Python提供一些出色的个性化IDE屏幕截图吗?邀请所有平台用户.请确保包含源/插件/文章如何制作它.

谢谢.

python open-source development-environment

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

如何在python中连接列表?

我正在尝试将String插入列表中.

我收到了这个错误:

TypeError: can only concatenate list (not "tuple") to list
Run Code Online (Sandbox Code Playgroud)

因为我试过这个:

var1 = 'ThisIsAString' # My string I want to insert in the following list
file_content = open('myfile.txt').readlines()
new_line_insert = file_content[:10] + list(var1) + rss_xml[11:]
open('myfile.txt', 'w').writelines(new_line_insert)
Run Code Online (Sandbox Code Playgroud)

myfile.txt的内容作为列表保存在"file_content"中.我想在第10行之后插入String var1,这就是我做的原因

file_content[:10] + list(var1) + rss_xml[11:]
Run Code Online (Sandbox Code Playgroud)

但列表(var1)不起作用.如何使此代码有效?谢谢!

python

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