小编Bed*_*des的帖子

使用特定的virtualenv在Jupyter笔记本中执行Python脚本

我想在Jupyter笔记本中执行一个长期运行的Python脚本,这样我就可以破解中期生成的数据结构.

该脚本具有许多依赖项和命令行参数,并使用特定的virtualenv执行.是否可以从指定的virtualenv(与Jupyter安装的不同)交互式地在笔记本中运行Python脚本?

谢谢!

python virtualenv python-3.x jupyter jupyter-notebook

55
推荐指数
5
解决办法
4万
查看次数

使用tqdm的asyncio aiohttp进度条

我正在尝试集成一个tqdm进度条来监视aiohttp在Python 3.5中生成的POST请求.我有一个工作进度条,但似乎无法使用收集结果as_completed().指针感激不尽.

我发现的示例建议使用以下模式,该模式与Python 3.5 async def定义不兼容:

for f in tqdm.tqdm(asyncio.as_completed(tasks), total=len(coros)):
    yield from f
Run Code Online (Sandbox Code Playgroud)

在没有进度条的情况下工作(虽然部分编辑)异步代码:

def async_classify(records):

    async def fetch(session, name, sequence):
        url = 'https://app.example.com/api/v0/search'
        payload = {'sequence': str(sequence)}
        async with session.post(url, data=payload) as response:
            return name, await response.json()

    async def loop():
        auth = aiohttp.BasicAuth(api_key)
        conn = aiohttp.TCPConnector(limit=100)
        with aiohttp.ClientSession(auth=auth, connector=conn) as session:
            tasks = [fetch(session, record.id, record.seq) for record in records]
            responses = await asyncio.gather(*tasks)    
        return OrderedDict(responses)
Run Code Online (Sandbox Code Playgroud)

这是我修改的失败尝试loop():

async def …
Run Code Online (Sandbox Code Playgroud)

progress-bar python-asyncio aiohttp python-3.5 tqdm

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

为列的每个唯一值输出整行一次(Bash)

这肯定是一项微不足道的任务awk或其他方面,但它让我今天早上挠头.我有一个格式与此类似的文件:

pep> AEYTCVAETK     2   genes ADUm.1024,ADUm.5198,ADUm.750
pep> AIQLTGK        1   genes ADUm.1999,ADUm.3560
pep> AIQLTGK        8   genes ADUm.1999,ADUm.3560
pep> KHEPPTEVDIEGR  5   genes ADUm.367
pep> VSSILEDKTT     9   genes ADUm.1192,ADUm.2731
pep> AIQLTGK        10  genes ADUm.1999,ADUm.3560
pep> VSSILEDKILSR   3   genes ADUm.2146,ADUm.5750
pep> VSSILEDKILSR   2   genes ADUm.2146,ADUm.5750
Run Code Online (Sandbox Code Playgroud)

我想在第2列中为每个不同的肽值打印一行,这意味着上面的输入将成为:

pep> AEYTCVAETK     2   genes ADUm.1024,ADUm.5198,ADUm.750
pep> AIQLTGK        1   genes ADUm.1999,ADUm.3560
pep> KHEPPTEVDIEGR  5   genes ADUm.367
pep> VSSILEDKTT     9   genes ADUm.1192,ADUm.2731
pep> VSSILEDKILSR   3   genes ADUm.2146,ADUm.5750
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的,但显然我也不需要:

awk '{print $2}' file | sort | uniq
# Prints …
Run Code Online (Sandbox Code Playgroud)

bash shell awk uniq

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

在NetworkX图中获取连接的节点

直截了当的问题:我想检索连接到NetworkX图中给定节点的所有节点,以便创建子图.在下面显示的示例中,我只想提取圆圈内的所有节点,给出其中任何一个节点的名称.

NetworkX图

我尝试了以下递归函数,但是命中了Python的递归限制,即使此网络中只有91个节点.

无论下面的代码是否有错误,我做什么的最佳方法是什么?我将在各种大小的图形上运行此代码,并且不会事先知道最大递归深度.

def fetch_connected_nodes(node, neighbors_list):
    for neighbor in assembly.neighbors(node):
        print(neighbor)
        if len(assembly.neighbors(neighbor)) == 1:
            neighbors_list.append(neighbor)
            return neighbors_list
        else:
            neighbors_list.append(neighbor)
            fetch_connected_nodes(neighbor, neighbors_list)

neighbors = []
starting_node = 'NODE_1_length_6578_cov_450.665_ID_16281'
connected_nodes = fetch_connected_nodes(starting_node, neighbors)
Run Code Online (Sandbox Code Playgroud)

python graph networkx

7
推荐指数
3
解决办法
5007
查看次数

将 aiohttp 请求与其响应相关联

很简单,我只想将来自aiohttp异步 HTTP 请求的响应与标识符(例如字典键)相关联,以便我知道哪个响应对应于哪个请求。

例如,下面的URI调用功能后缀的字典值123。如何修改它以返回与每个结果关联的键?我只需要能够跟踪哪个请求是哪个......对于熟悉的人来说无疑是微不足道的asyncio

import asyncio
import aiohttp

items = {'a': '1', 'b': '2', 'c': '3'}

def async_requests(items):
    async def fetch(item):
        url = 'http://jsonplaceholder.typicode.com/posts/'
        async with aiohttp.ClientSession() as session:
            async with session.get(url + item) as response:
                return await response.json()

    async def run(loop):
        tasks = []
        for k, v in items.items():
            task = asyncio.ensure_future(fetch(v))
            tasks.append(task)
        responses = await asyncio.gather(*tasks)
        print(responses)

    loop = asyncio.get_event_loop()
    future = asyncio.ensure_future(run(loop))
    loop.run_until_complete(future)

async_requests(items)
Run Code Online (Sandbox Code Playgroud)

输出(缩写):

[{'id': 2, ...}, …
Run Code Online (Sandbox Code Playgroud)

python-3.x python-requests python-asyncio aiohttp

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

并行地对多个列表进行Pythonic迭代

我想知道一种优雅的Pythonic方法在Python 3 中并行迭代列表(或列表的列表).直到运行时才知道列表的数量,所以我相信我不能简单地将它们作为参数提供到zip()功能.

例如,给定以下数据结构:

var = [['x1' ,'x2' ,'x3'], ['y1', 'y2', 'y3'], ['z1', 'z2', 'z3'], …]

我希望能够在每次迭代时访问以下值:

x1,y1,z1其次是x2,y2,z2其次x3,y3,z3等等.

据推测,我可以直接使用列表索引,或使用itertools.chain来实现这一点,但我正在寻找使用生成器或其他方式的更优雅的方法.

python for-loop data-structures python-3.x

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